matlab asinc 函数,哈尔滨工程大学数字信号处理实验二

8bf79f3f628e31276142480f76fd95c0.png

MAGNITUDE RESPONSE

NORMALIZED FREQUENCY

|H (w )|

0e97145b5d739f1b9dbbd8659436a605.png

D E G R E E S

PHASE RESPONSE

实验原理

对离散时间傅里叶变换DTFT 来说有两个问题:(1)DTFT 的定义对无限长信号时有效的;(2)DTFT 是连续变量w 的函数。

在MATLAB 中,任何信号必须是有长度的,使(1)成为问题,当能从变换定义式推导出解析式并只是计算它,可以使用MATLAB 计算无限长信号的DTFT 。对于频率抽样问题,通常在有限网格点上选择足够多的频率一试绘出逼近真实的DTFT 。最好的选择是在(-pi ,pi )区间上一组均匀隔开的频率,如式3.11所示。在数量有限的频率点wk=2*pi*k/N 出计算,并在有限范围内求和。要求N>=L 。MATLAB 的freqz 函数足以应对无限长信号,但计算有限长信号的DTFT 需用一个新的函数,dtft 函数。

对于无限长信号中的指数信号,其DTFT 是exp(j*w)的有理函数。可以推导出|a|<1时h[n]=a^n*u[n]的DTFT 表达式H(exp(j*w))=1/(1-a*exp(-j*w)),使用这一有理式容易计

算这个DTFT 的一组样本,分子和分母的计算都可以使用FFT ,即计算有理式等同于做两个dtft 函数计算,定义freqz 函数[HH,WW]=freqz(b,a,N,'whole')。

建立dtft 函数如下所示:

function [ H,W ] = dtft( h,N )

%UNTITLED2 Summary of this function goes here % Detailed explanation goes here N=fix(N);

L=length(h); h=h(:); if (Nerror('DTFT:#data samples cannot exceed # freq samples ') end

W=(2*pi/N)*[0:(N-1)]'; mid=ceil(N/2)+1; W(mid:N)=W(mid:N)-2*pi; W=fftshift(W); H=fftshift(fft(h,N));

在变换域上使用subplot 绘制双子图,程序如下:

>> format compact,subplot(111) >> a=0.88*exp(sqrt(-1)*2*pi/5); >> nn=0:40; xn=a.^nn; >> [X,W]=dtft(xn,128);

>> subplot(211),plot(W/2/pi,abs(X)); >> grid,title('MAGNITUDE RESPONSE')

>> xlabel('NORMALIZED FREQUENCY'),ylabel('|H(w)|')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值