1、% x1 = first sequence over n1 % x2 = second sequence over n2 (n2 can be different from n1) % n=min(min(n1),min(n2):max(max(n1),max(n2); %duration of y(n) y1=zeros(1,length(n); y2=y1;y1(find(n=min(n1)&(n=min(n2)&=max(n2)=1)=x2; %x2 with duration of y y=y1+y2; %sequence addition3. 序列相乘 序列相乘程序function
2、y,n=sigmult(x1,n1,x2,n2)%implements y(n)=x1(n)*x2(n)%-% y,n = sigmult(x1,n1,x2,n2)% y = product sequence over n, which includes n1 and n2% x1 = first sequence over n1% x2 = second sequence over n2 (n2 can be different from n1)%m(min(n1),min(n2) %duration of y(n) %x1 with duration of y %x2 with durat
3、ion of yy=y1.*y2; %sequence multiplication4. 序列翻转 序列翻转程序function y,n=sigfold(x, n)%implements y(n)=x(-n)% y,n = sigfold(x,n)y=fliplr(x);n=-fliplr(n);5. 序列移位 序列移位程序function y,n=sigshift(x,m,n0)%implements y(n)=x(n-n0)% y,n = sigshift(x,m,n0)n=m+n0;y=x;主程序x1=0:5;x2=0,1,2,3;n1=0:5;n2=0:3;%N=n1+n2-1;fig
4、ure(1)subplot(211)stem(x1)xlabel(x1)subplot(212)stem(x2)x2title(原序列x= sigadd(x1,n1,x2,n2);figure(2)stem(x)x1+x2序列相加figure(3)x,n = sigfold(x1,n1);stem(n,x)x1(-n)序列翻转x,n = sigshift(x,n,2);figure(4)x1(-n+2)序列移位x= sigmult(x1,n1,x2,n2);figure(5)序列相乘x1*x2(二) 自定义函数计算线性卷积1. 题目分析使用上一题中的序列相乘、翻转和求和子函数计算线性卷积,并与
5、这直接用conv函数计算的线性卷积结果相比较。2. 流程图3. 实验程序clearx2=0:3;n1=0:n2=0:leng1=length(x1);leng2=length(x2); %定义序列 x1 和 x2N=leng1+leng2-1; %计算卷积后的序列长度f=zeros(1,N); %创建存放卷积结果的序列x21,n2 = sigfold(x2,n2); %调用翻转子函数将 x2 翻转for i=0:1:N-1; %移位计算卷积,循环N次x21,n2=sigshift(x21,n2,1); %调用移位子函数将右移1位y=sigmult(x1,n1,x21,n2); %调用相乘子函数
6、将移位后的序列相乘z=sum(y); %将相乘后的序列求和f(1,N)=z; %将求和的值放入 f 的最后一项f=circshift(f,-1); %将 f 循环左移一位,为下一个序列求和做准备end,2) %循环中循环左移多了两次,将序列调整回正常位置y=conv(x1,x2) %直接调用conv计算线性卷积存入 ystem(f) %绘制自定义函数计算的卷积结果图自定义函数计算线性卷积stem(y) %绘制调用conv函数计算的卷积结果图使用conv计算线性卷积4. 实验结果和分析a) 实验结果图b) 结果分析和讨论 使用自定义函数计算的卷积结果和调用conv计算的卷积结果一致,本实验再现了
7、使用MATLAB计算线性卷积的过程,加深了对线性卷积的认识。实验题目二设计FIR数字滤波器使用汉宁窗设计带阻FIR滤波器,性能指标为:阻带边界频率,低通边界频率,高通边界频率,通带纹波,阻带纹波,描述设计过程,并绘制其频率特性图。(一)实验过程和步骤: 在电子电路设计中,滤波器起着非常重要的作用。利用滤波器可以改变信号中所含频率的相对比例或滤除某些频率分量。在当今的电子设计中,数字部分所占的比重越来越大,滤波器设计也由传统的模拟滤波器转变成了数字滤波器。相比于模拟滤波器,数字滤波器的性能更加容易控制,并且性能稳定。如何设计好数字滤波器,已经成为当今电子设计人员不可缺少的本领。 数字滤波器分为无
8、限长冲击响应滤波器(IIR)和有限长冲击响应滤波器(FIR)两种。由于IIR滤波器的设计需要考虑稳定性问题,并且具有相位非线性的特点,应用比较少。 FIR的低通滤波器设计一般采用窗函数法,利用已知窗函数的特性来设计所需性能的滤波器。常用的窗函数由汉名窗,海宁窗,布莱克曼,恺撒窗等,其中除了恺撒窗外都有固定的性能参数(截止频率,通代纹波,阻带衰减等),而恺撒窗通过对参数的改变可以实现各种其他窗函数的性能。 综合以上所述,本文简单介绍了用汉宁窗设计FIR型数字滤波器的过程。窗函数法设计FIR滤波器的基本步骤(1) 根据技术要求确定待求滤波器的单位取样响应如果已知待求滤波器的频响:Hd(ejw),则
9、:如果已知通带和阻带衰减和边界频率的要求,可选用理想滤波器作为逼近函数:Hd(ejw) IDFT hd(n) = (2) 根据过渡带及阻带衰减要求,确定窗函数及其长度 设过渡带宽为: ,其值近似于窗函数主瓣宽度。 与窗口长度N成反比:N A/ ,A的窗口形式;如:矩形窗:A=4 ;海明窗: A=8 ;选择窗口函数的原则:在保证阻带衰减满足要求的前提下,尽量选择主瓣窄的窗函数。(3) 计算滤波器的单位采样响应h(n)(4) 验算技术指标是否满足要求,计算设计的滤波器频率响应:计算设计的滤波器频率响应:汉宁窗定义汉宁窗(Hanning)函数时域形式可表示为:利用傅利叶变换的调制特性,由上式可得汉宁
10、窗的平谱函数为:当N远大于1时,上式可近似表示为:这三部分之和使旁瓣互相抵消,能量更集中在主瓣,汉宁窗函数的最大旁瓣值比主瓣值低31dB,但是主瓣宽度比矩形窗函数的主瓣宽度增加了1倍,为8/N。2. 实验程序wp1=0.3*pi;ws1=0.4*pi;ws2=0.6*pi;wp2=0.7*pi; %设计指标参数赋值wdelta=ws1-wp1; %计算过渡带宽度N0=ceil(6.2*pi/wdelta); %计算阶数N0,ceil(x)取大于等于x的最小整数wc=(ws1+wp1)/2,(ws2+wp2)/2; %设置理想带通截止频率N=N0+mod(N0+1,2); %确保h(n)长度是奇
11、数n=0:N0-1;b=fir1(N0,wc/pi,stop,hanning(N); %调用firl计算带阻FIR滤波器的h(n)H,f=freqz(b,1,512,100); %计算滤波器的幅频特性figure(1) plot(f,20*log10(abs(H) xlabel(频率/Hz); ylabel(振幅/dB grid on; title(频率特性impz(b,1) %滤波器的单位脉冲响应nylabel(h(n)grid on;单位脉冲响应zplane(b,1) %滤波器的极点分布3. 流程图(二)实验结果和分析a) 程序运行结果图 设计的FIR滤波器满足了阻带边界频率的要求,但是由于汉宁窗的阻带最小衰减是44dB,达不到题目的要求,如果选择哈明窗、布莱克曼窗或者凯塞窗都能达到实验题目要求。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1