没有合适的资源?快使用搜索试试~ 我知道了~
首页用matlab实现DTFT 和DFT
用matlab实现离散时间傅里叶变换DTFT 和离散傅里叶变换DFT。实验目的: 1、深刻理解离散时间信号傅里叶变换(DTFT)的定义,与连续傅里叶变换之间的关系; 2、深刻理解序列频谱的性质(连续的、周期的等); 3、能用MATLAB编程实现序列的DTFT,并能显示频谱幅频、相频曲线; 4、深刻理解DFT的定义、DFT谱的物理意义、DFT与DTFT之间的关系; 5、能用MATLAB编程实现有限长序列的DFT; 6、熟悉循环卷积的过程,能用MATLAB编程实现循环卷积运算
资源详情
资源评论
资源推荐
DSP实验报告 2008 级电信 3 班 苏冠男(3008204253) LAB2
1 / 11
实验二 离散时间傅里叶变换(DTFT)和离散傅里叶变换(DFT)
一、实验目的
1、深刻理解离散时间信号傅里叶变换(DTFT)的定义,与连续傅里叶变换之间的关系;
2、深刻理解序列频谱的性质(连续的、周期的等);
3、能用 MATLAB 编程实现序列的 DTFT,并能显示频谱幅频、相频曲线;
4、深刻理解 DFT 的定义、DFT 谱的物理意义、DFT 与 DTFT 之间的关系;
5、能用 MATLAB 编程实现有限长序列的 DFT;
6、熟悉循环卷积的过程,能用 MATLAB 编程实现循环卷积运算。
二、实验原理
1、离散时间信号的频谱和图示化
(1)求出频谱函数后取出其稠密的离散点,连接成曲线。
在 MATLAB 中,用连续信号在等时间间隔点的样值来近似的表示连续信号的频谱,当
取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。对于无限长信号的频
谱和有限长信号的频谱都可以用这种方法。
(2)在 MATLAB 中,利用编程计算出信号的频谱并画出。
这种方法适用于有限长信号频谱的计算和绘出。在一个周期内(比如[-π , π ]或[0,2
π ])把变量ω 赋值为很密的、长度很长的(离散)向量来近似连续变量,通常最简单的取
法是进行 M 等分,则可取为ω =k*dω =k*2π /M。其中,dω 为频域的间隔,夜场频率分辨率;
k 为频域的顺序向量,取整数。
频率的顺序向量公式:k∈[「-(M-1)/2」:「(M-1)/2」]([-π , π ]区间内),有时因对称
性,只取 k∈[0:「(M-1)/2」]。
※当需要求离散时间傅里叶变换(DTFT)时,可直接调用自己编写的函数:
function[X]=dtft(x,n,w) %X:以ω 为自变量的 DTFT(复值向量)
%x:以持续时间为 n 的有限长序列
%ω :频域采样点组成的向量
function X=dtft(x,n1,n2,M,per) :
%X=dtft(x,n1,n2,M,per)计算有限长信号的傅里叶变换
%X:有限长信号的傅里叶变换
%n1,n2:分别为时域序列的上下界
%M:频域的总点数
%若一个周期内取 M 个点,取 per=2,则频域间隔(频率分辨率)为 2*pi/M
%若半个周期内取 M 个点,取 per=1,则频域间隔(频率分辨率)为 pi/M
%根据需要可添加 plot(最后一句)
n=n1:n2;
switch per
case 1
c=pi;
k=0:M;
case 2
c=2*pi;
k=-M/2:M/2;
end
w=(c/M)*k;
X=x*(exp(-j*c/M).^(n’*k);
%plot(w/pi,abs(X));
DSP实验报告 2008 级电信 3 班 苏冠男(3008204253) LAB2
2 / 11
(3)由差分方程计算频率响应
编写 MATLAB 函数:[H]=freqresp(b,a,w)求频率响应。
%H:频率向量 w 处的频率响应向量 %b:差分方程分子系数向量
%a:差分方程分母系数向量(a(1)=1) %w:频率取值向量
2、离散傅里叶变换(DFT)的定义和图示化——矩阵向量法
3、循环卷积过程
先根据 N 的 长度进行补零,分别求 mod(-m,N),mod(n-m,N)
y=cirshift(x,m,N)
x=[x zeros(1,N-length(x))]; n=[0:1:N-1];
n=mod(n-m,N);%求余函数 y=x(n+1):
参考函数:circonvt 注:2010 版 MATLAB 中的循环函数为 cconv(x1,x2)
三、实验内容、过程及结果
2-9、 第 73 页习题 24
24.已知线性结果网络用下面的差分方程描述:y
n
= 0.9y
n 1
+ x
n
+ 0.9x(n 1)
(1)求网络的系统函数 H(z)及单位脉冲响应 h(n);
(2)写出网络频率响应函数H(e
j
)的表达式,并定性画出其幅频特性曲线;
(3)设输入x
n
= e
j
0
n
,求输出y
n
。
解:%MATLAB 程序如下:
(1) “lab2 2-9(1).m”
程序
答案
n=[-100:100];
b=[1,0.9];a=[1,-0.9];
disp('习题 24 (1)系统函数 H(z)');
%系统函数 H(z)
printsys(b,a,'z');
hn=dimpulse(b,a);
stem(hn);
title('习题 24 (1)单位脉冲响应');
xlabel('n');ylabel('h(n)');
习题 24 (1)系统函数 H(z)
num/den =
z + 0.9
-------
z - 0.9
hn =
1.0000
1.8000
1.6200
1.4580
1.3122
1.1810
1.0629
0.9566
0.8609
0.7748
0.6974
0.6276
0.5649
0.5084
0.4575
0.4118
0.3706
0.3335
0.3002
0.2702
0.2432
0.2188
0.1970
0.1773
0.1595
0.1436
0.1292
0.1163
0.1047
0.0942
0.0848
0.0763
0.0687
0.0618
0.0556
0.0501
0.0451
0.0406
0.0365
0.0328
0.0296
0.0266
0.0239
0.0216
0.0194
0.0175
0.0157
0.0141
0.0127
0.0115
0.0103
0.0093
0.0083
0.0075
0.0068
0.0061
0.0055
0.0049
DSP实验报告 2008 级电信 3 班 苏冠男(3008204253) LAB2
3 / 11
0 10 20 30 40 50 60
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
习题24 (1)单位脉冲响应
n
h(n)
(2)程序:
“lab2 2-9(2).m”
n=[-20:100];
b=[1,0.9];a=[1,-0.9];
zplane(b,a);
[H,w]=freqz(b,a,100);
magH=abs(H);phaH=angle(H);
figure,subplot(2,1,1);plot(w/pi,magH);grid;
xlabel('频率(pi)');ylabel('幅度');title('习题 24(2)幅度响应');
subplot(2,1,2);plot(w/pi,phaH/pi);grid;
xlabel('频率(pi)');ylabel('相位(pi)');title('习题 24(2)相位响应');
-1 -0.5 0 0.5 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Real Part
Imaginary Part
剩余10页未读,继续阅读
tjusuguannan
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论29