资源描述:
《信号处理大作业》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、信号处理课程设计第12页题1:自相关与FFT得分(1)某正弦波信号混有白噪声信号:正弦波频率为0.61,其他参数:fs=100,N=800.其程序如下:fs=100;%采样频率100HzN=800;%采样点数t=(0:1:N-1)/fs;f=0.61;%正弦信号频率0.61Hzs0=sin(2*pi*f*t);%正弦信号subplot(2,2,1);plot(s0)title('未加噪的信号');v=rand(1,N);v=v;%白噪声s=s0+v;%信号加噪声subplot(2,2,2),plot(s)title(['加噪信号']);dt=1;t=[0:dt:100];x=s;[a
2、,b]=xcorr(x,'unbiased');subplot(2,2,3);plot(b*dt,a);title('自相关变换后的信号')yf=fft(s);subplot(2,2,4);plot(abs(yf));title('FFT变换后的信号')(2)原始波形、自相关函数图形和FFT变换后的图形:图1-1初始信号和经过变换后的各信号第12页(3)通过图1-1得出分析:信号中混有的频率以原始未加噪声的信号f=0.61为主。(4)分析特点:自相关的频谱分析与FFT分析类似,经过自变换的信号可以直接与原始信号进行对比分析,并能直观的看出其相似程度,且自相关图像在0点的值最大;之后变
3、小,若信号中有周期成分,则自相关函数也有周期性。例题中正弦信号的自相关函数为余弦函数。FFT变换能有效降低时域信号的信噪比阀值,即具有良好的信号识别能力。能够看出信号幅值、相位的变化情况。而自相关变换却不可以。题2:IIR滤波器设计得分2.具体技术指标:通带截止频率50Hz,对应衰减3db,阻带截止频率80Hz,对应衰减20db,采样频率1000Hz.(1)butterworth滤波器源程序:wp=50*2*pi;ws=80*2*pi;fs=1000;Rp=3;Rs=20;[N,Wn]=buttord(wp,ws,Rp,Rs,'s');%估计滤波器最小阶数[z,p,k]=buttap
4、(N);%模拟滤波器函数引用[Bap,Aap]=zp2tf(z,p,k);[b,a]=lp2lp(Bap,Aap,Wn)[bz,az]=bilinear(b,a,fs)%双线性变换Freqz(bz,az)b=3.2250e+012a=1.0e+012*0.00000.00000.00000.00020.03293.2250bz=1.0e-003*0.06040.30200.60390.60390.30200.0604az=1.0000-3.98236.4281-5.24582.1610-0.3591频率特性图像为2-1第12页图2-1数字滤波器的频率特性图形Chebyschev滤波器
5、源程序:Fs=1000;%采样频率Wp=50*2*pi;%通带截止频率Ws=2*80*pi;%阻带截止频率Rp=3;%通带衰减频率Rs=20;%阻带衰减频率[N,Wn]=cheb2ord(Wp,Ws,Rp,Rs,'s');%取得给定频率下的阶数[z,p,k]=cheb2ap(N,Rs);%设计滤波器原型[B0,A0]=zp2tf(z,p,k);%用传递函数表示滤波器[b,a]=lp2lp(B0,A0,Wn)%将数字滤波器转换成低通滤波器[b1,a1]=bilinear(b,a,Fs)freqz(b1,a1)b=1.0e+007*0.0000-0.00004.5471a=1.0e+00
6、7*0.00000.00010.02204.5471b1=0.0561-0.0399-0.03990.0561a1=1.0000-2.33311.8722-0.5066Chebyschev滤波器信号如下2-2:第12页图2-1-2Chebyschev滤波器设计(2)butterworth模拟滤波器的传递函数为:butterworth数字滤波器的转移函数为:Chebyschev模拟滤波器的传递函数为:Chebyschev数字滤波器的转移函数为:(3)用butterworth滤波的源代码:Wp=50*2*pi;Ws=2*80*pi;Rp=3;Rs=20;Fs=1000;Nn=120;[N
7、,Wn]=buttord(Wp,Ws,Rp,Rs,'s');[z,p,k]=buttap(N);[Bap,Aap]=zp2tf(z,p,k);[b,a]=lp2lp(Bap,Aap,Wn);[bz,az]=impinvar(b,a,Fs);N=200;f=0.61;dt=1/Fs;n=0:N-1;t=n*dt;s0=sin(2*pi*f*t);%正弦信号第12页v=rand(1,N);v=v;%白噪声s=s0+v;subplot(2,1,1),plot(t