原创 信息分析课程

2012-7-15 20:46 628 3 3 分类: EDA/ IP/ 设计与制造

设计一

2.1.1 MATLAB程序

clear;clf;clc;%清除上一次运行的记录

M=32;%实际滤波器长度

N=81;%信号长度,影响过渡带长度

R=1024;%理想滤波器长度

x=cos(5/16*pi*(0:N-1))+2*cos(9/16*pi*(0:N-1));%原信号

x1=cos(5/16*pi*(0:N-1));%直接取需要的信号,将在后面与滤波结果做对比

wc=7/16*pi;%穿越频率

K=wc/(2*pi)*R;%穿越频率对应R中的位数,224位

hdf=[zeros(1,R/2-K),ones(1,2*K),zeros(1,R/2-K)];%在频域构造理想滤波器,前288位为0,中间448位为1,后288位为0

hd=ifftshift(ifft(hdf));%将理想滤波器转换到时域,并做平移

h=hd((R-M)/2+1R+M)/2);%取时域理想滤波器的中间32位,使其物理可实现

y=conv(h,x);%将信号与实际滤波器在时域做卷积,时域的卷积=频域的乘积

G=length(y);%卷积结果的长度,112位

xf=fftshift(fft(x));%x做傅里叶变换,并做平移

hf=fft(h);%h做傅里叶变换

yf=fft(y);%y做傅里叶变换

w2=(0:N-1)/N*2*pi-pi;%设置图(2)的x轴

w4=(0:R-1)/R*2*pi-pi;%设置图(4)的x轴

w6=(0:M-1)/M*2*pi-pi;%设置图(6)的x轴

w7=(0:G-1);%设置图(7)的一个x轴

w77=(0:N-1);%设置图(7)的另一个x轴

w8=(0:G-1)/G*2*pi-pi;%设置图(8)的x轴

subplot(421),plot(x,'k'),ylabel('原信号'),title('时域'),xlabel('(1) x');

subplot(422),plot(w2,abs(xf),'k'),title('频域'),xlabel('(2) xf');

subplot(423),plot(abs(hd),'k'),ylabel('理想滤波器'),xlabel('(3) hd');

subplot(424),plot(w4,hdf,'k'),xlabel('(4) hdf'),axis([-4 4 -0.1 1.1]);

subplot(425),plot(abs(h),'k'),ylabel('实际滤波器'),xlabel('(5) h');

subplot(426),plot(w6,abs(hf),'k'),xlabel('(6) hf'),axis([-4 4 -0.1 1.1]);

subplot(427),plot(w7,real(y),'k',w77,x1,'k-.'),ylabel('处理后信号'),xlabel('(7) y x1');

subplot(428),plot(w8,abs(yf),'k'),xlabel('(8) yf');

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /1 下一条