1.dfdt

function X =dtft(x,n,w)
%计算离散时间付里叶变换
%[X]=dtft(x,n,w)
%X=在w频率点上的DTFT数组
%x=n点有限长度序列
%n=样本位置向量
%w=频率点位置向量
X=x*(exp(-j).^(n'*w)); 

2.idfdt

function[x]=idtft(X,n,w)
%计算离散时间付里叶变换
%[X]=dtft(x,n,w)
%X=在w频率点上的DTFT数组
%x=n点有限长度序列
%n=样本位置向量
%w=频率点位置向量
x=1/(2*pi)*X*(exp(j).^(w'*n)); 

3.sigfold

function [y, n] = sigfold(x, n)
y = fliplr(x);
n = -fliplr(n);

4.sigshift

function [y,n] = sigshift(x,m,n0)
% 实现 y(n) = x(n-n0)
% -------------------------
% [y,n] = sigshift(x,m,n0)
%
n = m+n0; y = x;

5.绘制dtft的幅度、相角、实部、虚部

%% (a)
n=0:20;
x=2*(0.8).^n;
w=0:pi/500:pi;
X=dtft(x,n,w)
magX=abs(X);
angX=angle(X);
realX=real(X);
imagX=imag(X);
figure(1)
subplot(2,2,1);
plot(w/pi,magX);grid
xlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度')
subplot(2,2,3);plot(w/pi,angX);grid
xlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')
subplot(2,2,2);plot(w/pi,realX);grid
xlabel('以pi为单位的频率');title('实部');ylabel('实部')
subplot(2,2,4);plot(w/pi,imagX);grid
xlabel('以pi为单位的频率');title('虚部');ylabel('虚部')

6.dtft的性质验证

%% 3
n=0:10;
x1=rand(1,length(n));
x2=rand(1,length(n));
x=x1;
w=0:pi/500:pi;
X1=dtft(x1,n,w);
X2=dtft(x2,n,w);
X=dtft(x,n,w);%% 线性
a=0.3;
b=0.7;
F1=dtft(a*x1+b*x2,n,w);
F2=a*X1+b*X2;
magF1=abs(F1);
angF1=angle(F1);
magF2=abs(F2);
angF2=angle(F2);
figure(1)
subplot(2,2,1);
plot(w/pi,magF1);grid
xlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度')
subplot(2,2,3);plot(w/pi,angF1);grid
xlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')
subplot(2,2,2);
plot(w/pi,magF2);grid
xlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度')
subplot(2,2,4);plot(w/pi,angF2);grid
xlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')%% 时移
k=5;
%F1=dtft(x,n-k,w);
F2=exp(-j*w*k).*X1;
y2=idtft(F2,n,w);
%[y1,n1]=sigshift(x,n,k);
%n2=n;
subplot(2,1,1);stem(n,x,'r.'),title('原始时域波形') % 绘出x(jw)
subplot(2,1,2);stem(n2,y2,'r.'),title('平移后时域波形') % 绘出x(jw)%% 频移
w0=pi/3;
F1=dtft(x.*exp(j*w0*n),n,w);
F2=dtft(x,n,w);
magF1=abs(F1);
angF1=angle(F1);
magF2=abs(F2);
angF2=angle(F2);
figure(3)
subplot(2,2,1);
plot(w/pi,magF1);grid
xlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度')
subplot(2,2,3);plot(w/pi,angF1);grid
xlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')
subplot(2,2,2);
plot(w/pi,magF2);grid
xlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度')
subplot(2,2,4);plot(w/pi,angF2);grid
xlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')%% 共轭
F1=X1;
F2=conj(dtft(x,n,-w));
magF1=abs(F1);
angF1=angle(F1);
magF2=abs(F2);
angF2=angle(F2);
figure(4)
subplot(2,2,1);
plot(w/pi,magF1);grid
xlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度')
subplot(2,2,3);plot(w/pi,angF1);grid
xlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')
subplot(2,2,2);
plot(w/pi,magF2);grid
xlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度')
subplot(2,2,4);plot(w/pi,angF2);grid
xlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')%% 折叠
F1=dtft(x,-n,w);
F2=dtft(x,n,-w);
magF1=abs(F1);
angF1=angle(F1);
magF2=abs(F2);
angF2=angle(F2);
figure(5)
subplot(2,2,1);
plot(w/pi,magF1);grid
xlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度')
subplot(2,2,3);plot(w/pi,angF1);grid
xlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')
subplot(2,2,2);
plot(w/pi,magF2);grid
xlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度')
subplot(2,2,4);plot(w/pi,angF2);grid
xlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')%% 对称
[xf,n2]=sigfold(x,n);
n3=-10:10;
xe=1/2*[xf(1:10) xf(11)+x(11) x(2:11)];%奇对称分量
F1=dtft(xe,n3,w);
F2=real(X);
realF1=real(F1);
realF2=real(F2);
figure(6)
subplot(2,2,1);plot(w/pi,realF1);grid
xlabel('以pi为单位的频率');title('实部');ylabel('实部')
subplot(2,2,2);plot(w/pi,realF2);grid
xlabel('以pi为单位的频率');title('实部');ylabel('实部')xo=1/2*[-xf(1:10) -xf(11)+x(11) x(2:11)];%偶对称分量
F1=dtft(xo,n3,w);
F2=j*imag(X);
imagF1=imag(F1);
imagF2=imag(F2);
figure(7)
subplot(2,2,3);plot(w/pi,imagF1);grid
xlabel('以pi为单位的频率');title('虚部');ylabel('虚部')
subplot(2,2,4);plot(w/pi,imagF2);grid
xlabel('以pi为单位的频率');title('虚部');ylabel('虚部')

7.

w=0:pi/500:pi;
H=1./(1-0.8*exp(-j*w));
magH=abs(H);
angH=angle(H);
figure(1)
subplot(1,2,1);plot(w/pi,magH);grid
xlabel('以pi为单位的频率');title('幅频特性');ylabel('幅度')
subplot(1,2,2);plot(w/pi,angH);grid
xlabel('以pi为单位的频率');title('相频特性');ylabel('相位')

b=1;a=[1,-0.8]; % 输入系数矩阵
n=[0:100];x=cos(0.05*pi*n); % 输入激励序列
y_zs=filter(b,a,x); % 计算响应序列
subplot(2,1,1);stem(n,x,'.'); grid % 画出激励枝干图
xlabel('n');ylabel('x(n)');title('Input sequence');
subplot(2,1,2);stem(n,y_zs,'.'); grid % 画出响应枝干图
xlabel('n');ylabel('y_zs(n)');title('Output sequence');

8.采样和重构

%% 5 a
Dt=0.00005; % 模拟时间间隔:在特定精度下信号为模拟的
t=-0.005:Dt:0.005; % 模拟时刻序列
xa=exp(-1000*abs(t)); % 在特定精度下,由离散信号逼近模拟信号
fs=5000;
Ts=1/fs; % 采样周期
n=-25:1:25; % 离散时间索引
x1=exp(-1000*abs(n*Ts)); % Fs=5000 样本/s:x1为采样后的离散时间序列
K=500; % 对pi进行K等分:相当于对单位圆2pi进行1000等分
dk = pi/K; % pi 的等分步进索引
w=0 : dk : pi; % 角度步进索引
X=x1 * exp(-j* n'*w);% 对x1序列做离散傅立叶变换
Xr=real(X);w=[-fliplr(w),w(2:end)]; % 定义w负半轴
Xr=[fliplr(Xr),Xr(2:end)]; % 由于实部偶对称,得到Xr的负半轴
figure(1);
subplot(2,1,1);plot(t*1000,xa);hold on % 绘出xa
stem(n*Ts*1000,x1,'r.'),hold off,title('时域波形') % 绘出x(jw)
subplot(2,1,2);plot(w/pi,Xr);title('频域波形') % 绘出以pi归一化的数字频率对应的频域实部波形%% 5 c fs=5000重构
Ts=0.0002; % 采样间隔
Fs=1/Ts; % 采样频率
n=-25:1:25; % 采样时间索引
nTs=n*Ts; % 序列时刻索引
Dt=0.00005; % 模拟时刻精度
t=-0.005:Dt:0.005; % 模拟时刻索引
xa= x1* ... % 内插重构
sinc(Fs*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
figure(3);
subplot(2,1,1),plot(t*1000,xa, 'k' ),hold on
stem(n*Ts*1000,x1, 'r.' ),hold off ,title('重构波形(不失真)' )

9.

%% 6 (1)a
Dt=0.00005; % 模拟时间间隔:在特定精度下信号为模拟的
t=-0.005:Dt:0.005; % 模拟时刻序列
xa=sin(1000*pi*t); % 在特定精度下,由离散信号逼近模拟信号
Ts=0.0001; % 采样周期
n=-25:1:25; % 离散时间索引
x1=sin(1000*pi*abs(n*Ts)); % Fs=5000 样本/s:x1为采样后的离散时间序列
K=500; % 对pi进行K等分:相当于对单位园2pi进行1000等分
dk = pi/K; % pi 的等分步进索引
w=0 : dk : pi; % 角度步进索引
X=x1 * exp(-j* n'*w);% 对x1序列做离散傅立叶变换
Xr=real(X);w=[-fliplr(w),w(2:end)]; % 定义w负半轴
Xr=[fliplr(Xr),Xr(2:end)]; % 由于实部偶对称,得到Xr的负半轴
figure();
subplot(2,2,1);plot(t*1000,xa);hold on % 绘出xa
stem(n*Ts*1000,x1,'r.'),hold off,title('时域波形') % 绘出x(jw)
subplot(2,2,2);plot(w/pi,Xr);title('频域波形') % 绘出以pi归一化的数字频率对应的频域实部波形
magXr=abs(Xr);
angXr=angle(Xr);
subplot(2,2,3);
plot(w/pi,magXr);grid
xlabel('以pi为单位的频率');title('幅度部分');ylabel('幅度')
subplot(2,2,4);plot(w/pi,angXr);grid
xlabel('以pi为单位的频率');title('相角部分');ylabel('弧度')

%% 6 (2)a
Dt=0.00005; % 模拟时间间隔:在特定精度下信号为模拟的
t=0:Dt:1; % 模拟时刻序列
xa=sin(20*pi*t+pi/4); % 在特定精度下,由离散信号逼近模拟信号
Ts=0.05; % 采样周期
n=0:1:20; % 离散时间索引
x1=sin(20*pi*abs(n*Ts)+pi/4); % Fs=5000 样本/s:x1为采样后的离散时间序列
K=500; % 对pi进行K等分:相当于对单位园2pi进行1000等分
dk = pi/K; % pi 的等分步进索引
w=0 : dk : pi; % 角度步进索引
X=x1 * exp(-j* n'*w);% 对x1序列做离散傅立叶变换
Xr=real(X);w=[-fliplr(w),w(2:end)]; % 定义w负半轴
Xr=[fliplr(Xr),Xr(2:end)]; % 由于实部偶对称,得到Xr的负半轴
figure();
plot(t,xa);hold on % 绘出xa
stem(n*Ts,x1,'o'),hold off,title('时域波形') % 绘出x(jw)%% 6 (2)b
Ts=0.05; % 采样间隔
Fs=1/Ts; % 采样频率
n=0:1:20; % 采样时间索引
nTs=n*Ts; % 序列时刻索引
Dt=0.001; % 模拟时刻精度
t=0:Dt:1; % 模拟时刻索引
xa= x1* ... % 内插重构sinc(Fs*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
figure();
plot(t,xa, 'k' ),hold on
stem(n*Ts,x1, 'r.' ),hold off ,title('重构波形(不失真)' )

转载于:https://www.cnblogs.com/pursuit1996/p/4912366.html

数字信号处理实验(三):离散时间傅里叶变换相关推荐

  1. 数字信号处理实验 序列的傅里叶变换和离散傅里叶变换及其关系

    如果帮到了你希望点赞收藏哦 实验一 序列的傅里叶变换和离散傅里叶变换及其关系 一.[实验目的] 1.掌握序列傅里叶变换 DTFT 的计算机实现方法: 2.掌握序列 DFT 基本理论及其计算机实现方法: ...

  2. 数字信号处理实验三用fft对信号作频谱分析_机器学习中的音频特征:理解Mel频谱图...

    如果你像我一样,试着理解mel的光谱图并不是一件容易的事.你读了一篇文章,却被引出了另一篇,又一篇,又一篇,没完没了.我希望这篇简短的文章能澄清一些困惑,并从头解释mel的光谱图. 信号 信号是一定量 ...

  3. 数字信号处理 实验三 FFT 应用及 CZT (fft在快速卷积,相关,功率谱及CZT应用)

    快速傅里叶变化FFT的应用 前言 快速傅里叶变换 快速卷积计算 快速相关计算 功率谱计算 线性调频Z变换(CZT) 全部程序可点此处下载 前言 傅里叶变换在时频域转换和频域分析上有着重要的作用.但是如 ...

  4. matlab 数字信号波形图,数字信号处理第三次实验代码及波形图

    数字信号处理第三次实验 一.实验目的: 1.掌握离散时间系统的DFT 的MATLAB 实现: 2.熟悉DTFT 和DFT 之间的关系. 3.了解信号不同变形的DFT 与原信号DFT 之间的关系 二.实 ...

  5. matlab fft谱分析实验报告,数字信号处理实验报告-FFT算法的MATLAB实现.doc

    数字信号处理实验报告-FFT算法的MATLAB实现.doc 数字信号处理 实验报告实验二FFT算法的MATLAB实现一.实验目的通过本实验的学习,掌握离散傅立叶变换的理论,特别是FFT的基本算法以及其 ...

  6. 离散卷积的c语言编程实验,数字信号处理实验一离散卷积c语言编程.ppt

    数字信号处理实验一离散卷积c语言编程 实验一 离散卷积的C语言编程实验 DSP实验室 2005 实验性质 综合设计性实验 实验目的 1 了解和认识常用的各种信号: 2 掌握卷积的定义和计算方法: 3 ...

  7. fir1截止频率计算_数字信号处理 实验五:FIR数字滤波器设计与软件实现

    10.5 实验五:FIR数字滤波器设计与软件实现 10.5.1 实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法. (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和 ...

  8. 数字信号处理实验matlab版答案刘舒帆,数字信号处理实验(MATLAB版) 刘舒帆,费诺,陆辉 西安电子科技大学出版社 9787560620060...

    商品描述: 基本信息 书名:数字信号处理实验(MATLAB版) 原价:31.00元 作者:刘舒帆,费诺,陆辉 著 出版社:西安电子科技大学出版社 出版日期:2013-7-1 ISBN:97875606 ...

  9. 数字信号处理第三次试验:用FFT对信号作频谱分析

    数字信号处理第三次试验:用FFT对信号作频谱分析 前言 一.实验目的 二.实验原理与方法 三.实验环境 四.实验内容及步骤 五.实验结果截图(含分析) 六.思考题 前言 为了帮助同学们完成痛苦的实验课 ...

  10. matlab数字信号处理实验报告,数字信号处理实验报告一 离散信号及其MATLAB实验...

    数字信号处理 离散信号及其MATLAB实验 南昌航空大学实验报告 2012 年 04 月 06 日 课程名称: 数字信号处理 实验名称: 离散信号及其MATLAB实现 班级: 090423班 学号: ...

最新文章

  1. ios 打开评论界面
  2. js计算两个时间之间天数差的实例代码
  3. Putty常用属性设置
  4. tf.reduce_max()函数的用法详解
  5. Java编程技巧:如何实现参数的输入输出?
  6. 牛客网【每日一题】4月13号 Accumulation Degree
  7. cloud一分钟 | 腾讯云联手斗鱼、虎牙两大头部游戏直播平台开启 定制道具的创新互动...
  8. 用计算机解决问题 评课稿,总结反思:二年级数学lbrack;解决问题rsqb;评课稿
  9. 酷客多郝宪玮:不够小程序化的企业,将错失最近5年的流量红利
  10. L2TP协议笔记1---L2TP概念及协议流程分析
  11. SploitFun Linux x86 Exploit 开发系列教程
  12. MFC---CComboBox控件添加字符串函数InsertString
  13. DL_C2_week1_2(Regularization)L2,Drop_out正则化
  14. 复旦大学管理学院2017年考博(高级微观经济学+管理理论综合)真题,高微老师上课资料
  15. 微软C2030服务器,联想支持Windows 10系统升级机型列表
  16. 专精特新中小企业的政策依据
  17. 解决spark运行时控制台打印冗杂的INFO(屏蔽掉无用的INFO)
  18. 如何使用iPhone生存僵尸启示录
  19. [免费专栏] Android安全之绕过直连、HOST校验、系统证书校验、代理检测、双向认证抓HTTPS数据
  20. mysql安装 解压版

热门文章

  1. 基于视觉的烟雾/火焰检测数据集整理(检测、识别、分割)
  2. 深度学习的实用层面 —— 1.1 训练/开发/测试集
  3. P3243 [HNOI2015]菜肴制作(拓扑 + 优先队列)
  4. python变量命名规则_Python教程第9篇:牢记Python变量命名5大规则
  5. python staticmethod规范_Python Staticmethod可以调用另一个本地方法吗?
  6. mysql表统一编码_PHP MySQL Apache统一编码
  7. php简单记账本_代理记账的三种方式
  8. java压缩图片等比缩放_java对图片进行压缩和resize缩放的方法
  9. 计算机考试换机密码,Ami换机,让你轻松转移手机资料!
  10. java 字母随机数_java如何生成指定长度的随机数字和英文的字符串