window),可以指定窗函数向量window。如果缺省window参数,则fir1默认为哈明窗。其中可选的窗函数有Rectangular Barlrtt Hamming Hann Blackman窗,其相应的都有实现函数。
MATLAB信号处理工具箱函数buttp buttor butter是巴特沃斯滤波器设计函数,其有5种调用格式,本课程设计中用到的是[N,wc]=butter(N,wc,Rp,As,’s’),该格式用于计算巴特沃斯模拟滤波器的阶数N和3dB截止频率wc。
MATLAB信号处理工具箱函数cheblap,cheblord和cheeby1是切比雪夫I型滤波器设计函数。我们用到的是cheeby1函数,其调用格式如下: [B,A]=cheby1(N,Rp,wpo,’ftypr’)
[B,A]=cheby1(N,Rp,wpo,’ftypr’,’s’) 函数butter,cheby1和ellip设计FIR滤波器时都是默认的双线性变换法,所以在设计滤波器时只需要代入相应的实现函数即可。下面是FIR数字滤波器的主要程序。
Ft=2000; %采样频率
fpts=[100 120 %通带边界频率fp=100Hz,阻带截止频率fs=120Hz mag=[1 0];
dev=[0.01 0.05]; %通带波动1%,阻带波动5%
[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev,Ft); %kaiserord估计采用凯塞窗设计的FIR 滤波器的参数
b21=fir1(n21,wn21,Kaiser(n21+1,beta)); %由fir1设计滤波器 [h,w]=freqz(b21,1); %得到频率响应 plot(w/pi,abs(h)); grid on
title('FIR低通滤波器');
图6
9
滤波前AM解调信号
t=-1:0.00001:1;
A0=10; %载波信号振幅 A1=5; %调制信号振幅 A2=3; %已调信号振幅 f=3000; %载波信号频率 w0=2*f*pi;
m=0.15; %调制度
k=0.5 ; %DSB 前面的系数 mes=A1*cos(0.001*w0*t); %调制信号 Uam=A2*(1+m*mes).*cos((w0).*t); %AM 已调信号
Dam=Uam.*cos(w0*t); %对AM调制信号进行解调 subplot(2,1,1); plot(t,Dam); grid on;
title('滤波前AM解调信号波形'); subplot(2,1,2);
Y5=fft(Dam); % 对AM解调信号进行傅里叶变换 plot(abs(Y5)),grid;
title('滤波前AM解调信号频谱'); axis([187960,188040,0,200000]);
图7
10
分析:解调是调制的逆过程,是从高频已调波中恢复出原低频调制信号的过程,也被称为检波。建立数学模型,得到AM解调信号波形图和频谱图,从频上看,解调也是一种信号频谱的线性搬移过程,是将高频载波端边信号带信号的频谱线性搬移到低频端,与调制过程正好相反。检波器的输入为振幅调制信号Uam=A2*(1+m*mes).*cos((w0).*t);为了解调出调制频率为Ω的调制信号,检波器必须包含非线性电路,以便调制信号通过它产生 新的频率分量(其中包含所需的Ω分量)。但是此时由图可以观察到解调出来的信号仍然含有不需要的高频分量,因此需要低通滤波器滤掉高频,取出所需要的调制信号
。
AM解调信号FIR滤波
t=-1:0.00001:1;
A0=10; %载波信号振幅 A1=5; %调制信号振幅 A2=3; %已调信号振幅 f=6000; %载波信号频率 w0=f*pi;
m=0.15; %调制度 Uc=A0.*cos(w0*t); %载波信号 subplot(5,2,1); plot(t,Uc);
title('载波信号'); axis([0,0.01,-15,15]);
T1=fft(Uc); %傅里叶变换 subplot(5,2,2); plot(abs(T1));
title('载波信号频谱');
axis([5800,6200,0,1000000]);
mes=A1*cos(0.001*w0*t); %调制信号 subplot(5,2,3); plot(t,mes);
title('调制信号'); T2=fft(mes); subplot(5,2,4);
plot(abs(T2)); title('调制信号频谱');
axis([198000,202000,0,2000000]);
11
Uam1=A2*(1+m*mes).*cos((w0).*t); %AM 已调信号 plot(t,Uam1); title('已调信号'); T3=fft(Uam1); subplot(5,2,6); plot(abs(T3));
title('已调信号频谱');
axis([5950,6050,0,500000]);
sn1=20; db1=A1^2/(2*(10^(sn1/10))); n1=sqrt(db1)*randn(size(t)); Uam=n1+Uam1;
Dam=Uam.*cos(w0*t); subplot(5,2,7);
plot(t,Dam);
title('滤波前的AM解调信号波形');
T4=fft(Dam); subplot(5,2,8); plot(abs(T4));
title('滤波前的AM解调信号频谱'); axis([187960,188040,0,200000]);
z21=fftfilt(b21,Dam); subplot(5,2,9);
plot(t,z21,'r');
title('滤波后的AM解调信号波形');
T5=fft(z21); subplot(5,2,10); plot(abs(T5),'r');
title('滤波后的AM解调信号频谱'); axis([198000,202000,0,200000]);
%信噪比
%计算对应噪声方差 %生成高斯白噪声
%对AM已调信号进行解调 %求AM信号的频谱 %FIR低通滤波 %求AM信号的频谱 12