一、数字变频原理(积化和差,取和或取差)
单通道变频:
设中频信号x(t):
x(t)与cos(wt)混频得到z(t)。
z(t)加上低通滤波后滤除和频部分得到:
完成下变频。若加上高通滤波滤除差频部分得到:
完成上变频。
数字混频正交变换。实信号频谱具有共轭对称性,正负频谱中的任何一个都能完整还原出信息。正频率分量的信号是一个复信号,其实部是原信号本身,虚部是原信号的希尔伯特变换(正交变换)。当实信号将频谱搬移到基带时正负频谱会发生混叠,因此搬移时使用只含单边频谱的复信号。复信号处理后得到单边普信号,再进行频谱搬移时包络信息不会失真。实信号在将频谱向0中频搬移时会发生正负频率的混叠造成信号失真。基带信号的中频为0,它既有正频分量,又有负频分量,但由于它是复信号,其频谱不具有共轭对称性,若对其剔除负频分量就会造成信息的损失。
双通道变频:
设中频信号x(t)为:
其中:
令:
差角公式:
可以看出信号的同相分量cos(a)和正交分量sin(a)分别乘以一对正交信号cos(b),sin(b)后混频也可得到差频信号y(t)。
原理图如下:
二、matlab仿真:
%% MSK 调制
clear all; close all;
Fs = 200e6;
Fc = 70e6;
symb_rate = 20e6; %符号速率
M = 2; %MSK调制阶数
m = 0.5; %MSK调制指数
freqsep = symb_rate*m; %频率间隔
nsamp = Fs/symb_rate;
dat_bit = randi([0 1],1,100);
y = fskmod(dat_bit,M,freqsep,nsamp,Fs);
figure();plot3(1:length(y),real(y),imag(y));
% 中频
len = length(y);
t = (0:len-1)/Fs;
y_fc = y .* exp(1i*2*pi*Fc.*t);
figure();plot3(1:length(y_fc),real(y_fc),imag(y_fc));
% iq合路相加
signal = real(y_fc)+imag(y_fc);
figure();plot(signal(1:200));
% iq采样
Y = signal .* exp(-1i*2*pi*Fc.*t);
figure();plot3(1:length(Y),real(Y),imag(Y));
% 低通滤波
fir_lp = fir1(100,0.48,'low');
Y_l = filter(fir_lp,1,Y);
figure();plot3(1:length(Y_l),real(Y_l),imag(Y_l));
低通:
clear all; close all;
Fs = 1e4;
t = (0:1000)/Fs;
Fre= 1e2+20;
signal = sin(2*pi*Fre*t);
plot(signal);
Fc = 1e2;
cosw = cos(2*pi*Fc*t);
sinw = sin(2*pi*Fc*t);
figure();
plot3(t,cosw,sinw);
i = signal.*cosw;
q = signal.*sinw;
figure();
plot3(t,i,q);
fir_lp = fir1(500,0.001,'low');
i_l = filter(fir_lp,1,i);
q_l = filter(fir_lp,1,q);
figure();
plot3(t,i_l,q_l);title("α-β")
fir_hp = fir1(500,0.01,'high');
i_h = filter(fir_hp,1,i);
q_h = filter(fir_hp,1,q);
figure();
plot3(t,i_h,q_h);title("α+β")
sin(α):
cos(β)+i*sin(β):
sin(α)cos(β)+isin(α)*sin(β):
α-β
α+β
三、dds ip核的使用
IP核作用:dds IP核的作用是产生一定频率的信号,原信号与生成的信号相乘,就能混频得到含有原信号与生成信号两个频率的差频与和频的信号。在通过滤波器得到差频部分或和频部分。
IP核参数设置:
Frequency per Channel = System Clock / Channels Number
Frequency Resolution = Frequency per Channel/2^(Phase Width).
Phase Width 即量化相位值的数据位宽。相位最小增量为1/2^PhaseWidth*2π。
每个通道信号的频率 = Phase Angle Increment Values * Frequency per Channel/2^(Phase Width).
= Frequency Resolution * Phase Angle Increment Values.
Implementation中Phase Increment Programability设置为Programmable使生成正弦波的频率可以通过外面控制改变,常用于频偏校正。
四、频率校正
dds输出的频率不精确时需要频偏校正,比如驱动时钟是204.8MHz需要产生1MHz的正弦波形时如果相位的精度是32位,则每个时钟的相位增量就是(1M/204.8M)*(2^32) = 20,971,520 是一个整数,dds产生的正弦波频率为1MHz。如果驱动时钟是200MHz要产生1MHz的正弦波,则每个时钟的相位增量就是1/200*2^32=21,474,836.48 是一个小数,此时相位增量只能设置为21,474,836就会造成产生的正弦波频率约为0.9999999776MHz。此时就需要将丢失0.48的相位补偿回来补偿的周期为0.48与1的最小公倍数25(0.48*25=1*12),也就是每第25个时钟时相位的增量为21,474,836+12 (21,474,836.48*25==21,474,836*24+21,474,848*1)。