数字信号处理第三次实验

一、实验目的:

1、掌握离散时间系统的DFT 的MATLAB 实现;

2、熟悉DTFT 和DFT 之间的关系。

3、了解信号不同变形的DFT 与原信号DFT 之间的关系

二、实验内容:

1.开发一个时域圆周移位的matlab 函数cirshift.m 并测试:设x(n)=[9 8 7 6 5 4 3],求x((n-4))8R 8(n)以及x((n+5))8R 8(n)。

function y=cirshift(x,m,N)

%长度为N 的x 序列(时域)作m 点圆周位移

%-------------------------------------

%[y]=cirshift(x,m,N)

%y=包含圆周位移的输出序列

%x=长度

%m=移位样点数

%N=圆周缓冲器长度

%方法:y(n)=x((n-m)mod N)

%check for length of x

if length(x)>N

error('N 必须>=x的长度' )

end

x=[x zeros(1,N-length(x))];%将x 补零到长度为N

n=[0:1:N-1];

n=mod(n-m,N);

y=x(n+1);

%主函数.m

clc;clear all ;

x=[9 8 7 6 5 4 3];

y1=cirshift(x,4,8);

y2=cirshift(x,-5,8);

2. 开发一个圆周翻转的matlab 函数cirflip.m 并测试:设x(n)=[9 8 7 6 5 4 3 2 1],求x(n)的16点圆周翻转x((-n))16R 16(n)。

function y=cirfilp(x,N)

nx=[0:1:N-1];

y=x(mod(-nx,N)+1);

%主函数.m

clc;clear all ;

x=[9 8 7 6 5 4 3 2 1];

N=16;

x=[x zeros(1,N-length(x))];

nx=0:N-1;

y=cirfilp(x,16);

subplot(121),stem([0:N-1],x);title(' 原序列' );

xlabel('n' );ylabel('x(n)');grid;

subplot(122),stem([0:N-1],y);title(' 圆周翻褶序列' );

xlabel('n' );ylabel('x((n))16r16(n)');grid;

3. 开发一个分解圆周奇偶对称序列的matlab 函数cirevod.m 并测试:设x(n)=[9 8 7 6 5 4 3 2 1],将x(n)分解圆周奇偶对称序列x ep (n) 、x op (n)。

function [xep,xop]=circevod(x)

%将实序列分解为圆周偶和圆周奇两部分

%------------------------------------

%[xep,xop]=circevod(x)

if any(imag(x)~=0)

error('x 非实序列' )

end

N=length(x);

n=0:N-1;

xep=0.5*(x+x(mod(-n,N)+1));

xop=0.5*(x-x(mod(-n,N)+1));

%主函数.m

x=[9 8 7 6 5 4 3 2 1];

[xep,xop]=circevod(x);

4. 开发一个实现DFT 矩阵的函数wN=dftmtx(N)并测试N=4,8,16的DFT 矩阵,在此基础上寻求IDFT 矩阵wNI 的编程方法并测试N=4,8,16的IDFT 矩阵

%这是matlab 自带的函数 命令行输入type+dftmtx可查看源代码。

function D = dftmtx(n)

n = signal.internal.sigcasttofloat(n,'double' , 'dftmtx' , 'N' , ... 'allownumeric' );

D = fft(eye(n));

命令行输入:

wN=dftmtx(N);

wNI=conj(dftmtx(N))/N

DFT

N=4

N=8

N=16

IDFT :

N=4

N=8

N=16

5. 自编工具函数XK=dft(xn,N)实现DFT 以及IDFT ,并测试x(n)=[9 8 7 6 5 4 3 2 1]的DFT 。

function [Xk]=dft(xn,N)

n=[0:1:N-1];

k=n;

WN=exp(-j*2*pi/N);

nk=n'*k;

WNnk=WN.^(nk);

Xk=xn*WNnk;

%主函数

xn=[9 8 7 6 5 4 3 2 1]

y=dft(x,9);

function [Xk]=idft(xn,N)

n=[0:1:N-1];

k=n;

WN=exp(-j*2*pi/N);

nk=n'*k;

WNnk=WN.^(-nk);

Xk=(xn*WNnk)/N;

6. 开发一个圆周卷积计算的matlab 函数y=circonvt(x1,x2,N),并测试x1(n)=[1 2 3 4 9], x2=[7 6 5 4 3 2 1],求8点圆周卷积。

function y=circonvt(x1,x2,N)

if length(x1)>N

error('N 必须>=x1的长度' ) end

if length(x2)>N

error('N 必须>=x2的长度' ) end

x1=[x1 zeros(1,N-length(x1))]; x2=[x2 zeros(1,N-length(x2))]; m=[0:1:N-1]; x2=x2(mod(-m,N)+1); H=zeros(N,N);

for n=1:1:N

H(n,:)=cirshift(x2,n-1,N); end

y=x1*H';

%test.6

x1=[1 2 3 4 9];

x2=[7 6 5 4 3 2 1];

y=circonvt(x1,x2,8);

7. 教材P212 习题3.36.

余弦频率是正弦频率的两倍,故正弦周期是预先周期的两倍。T=0.5s 抽样间隔T=0.01s,故N=50;

clear all ;clc;

N=50;

n=[0:1:N-1];

k=n;

xn=2*sin(0.04*pi*n)+5*cos(0.08*pi*n);

WN=exp(-j*2*pi/N);

nk=n'*k;

WNnk=WN.^(nk);

Xk=xn*WNnk;

magX=abs(Xk);

angX=angle(Xk);

subplot(121);stem(k,magX,'.' );grid;

xlabel('k' );title(' 幅度谱曲线' );ylabel('X(k)');

subplot(122);stem(k,angX,'.' );grid;

xlabel('k' );title(' 相位谱曲线' );ylabel(' 弧度' );

因为抽样频率不变,要增大N 才能减少谱泄露,故N=99; clear all ;clc;

N=99;

n=[0:1:N-1];

k=n;

xn=2*sin(0.04*pi*n)+5*cos(0.08*pi*n); WN=exp(-j*2*pi/N);

nk=n'*k;

WNnk=WN.^(nk);

Xk=xn*WNnk;

magX=abs(Xk);

angX=angle(Xk);

subplot(121);stem(k,magX,'.' );grid;

xlabel('k' );title(' 幅度谱曲线' );ylabel('X(k)'); subplot(122);stem(k,angX,'.' );grid;

xlabel('k' );title(' 相位谱曲线' );ylabel(' 弧度' );

matlab 数字信号波形图,数字信号处理第三次实验代码及波形图相关推荐

  1. 关于MATLAB实现的数字信号处理(二)

    上一篇:关于MATLAB实现的数字信号处理(一) 下一篇:关于MATLAB实现的数字信号处理(三) 文章目录 上一篇:关于MATLAB实现的数字信号处理(一) 下一篇:关于MATLAB实现的数字信号处 ...

  2. MATLAB中常见数字信号处理相关函数汇总

    MATLAB中常见数字信号处理相关函数汇总 现将MATLAB信号处理工具箱函数进行分组,便于记忆查询和长期回顾. Waveform Generation(波形产生) chairp: 产生扫频余弦函数: ...

  3. 奇数点偶数点fft的matlab,电子科大 数字信号处理实验2_FFT的实现

    电 子 科 技 大 学 实 验 报 告 学生姓名:Shrimp 学 号: 指导教师: 一.实验室名称:数字信号处理实验室 二.实验项目名称:FFT 的实现 三.实验原理: 一.FFT 算法思想: 1. ...

  4. 理解数字信号处理的三把钥匙

    理解数字信号处理的三把钥匙 在数字信号处理大厦中,有许许多多的小房间,有的门上写着"DFT",有的门上写着"滤波",有的门上写着"卷积",有 ...

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

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

  6. MATLAB图像处理与数字信号处理资料分享来袭

    小天从大学开始接触数学建模,便开启资料收集功能.经过近几年的积累和沉淀,再加上对数学建模领域的深入研究,收集整理了丰富的数学建模资料,内容涵盖"MATLAB图像处理"," ...

  7. MATLAB与FPGA数字信号处理(数字滤波器设计)、数字IC、无线通信、图像处理、信道编码系列

    FPCA.数字IC笔试题系列 不容错过的FPGA/数字IC秋招笔试面试汇总帖(2022届) 1. FPGA.数字IC系列(1)--乐鑫科技2021数字IC提前批笔试 2. FPGA.数字IC系列(2) ...

  8. matlab pburg,现代数字信号处理——AR模型

    1. AR模型概念观 AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值,其目的都是为了增加有效数据,只是AR模型是由N点递推,而插值是由两 ...

  9. matlab如何进行数字信号处理,使用MATLAB进行数字信号处理-第2部分

    这篇文章来源于DevicePlus.com英语网站的翻译稿. 在Arduino DSP系列的第二部分中,我们将继续深入研究数字信号处理的基础知识.我们将学习数字滤波器的特性以及在MATLAB中处理信号 ...

最新文章

  1. Chem. Sci. | 3D深度生成模型进行基于结构的从头药物设计
  2. open(/dev/ietctl, O_RDWR) 参数含义
  3. 4行CSS实现【表格内容超过一行的部分,用省略号代替】【支持IE6】
  4. 问题用户小米科技CEO雷军:千万别把用户当上帝
  5. Oracle官方文档网址收录
  6. shiro表单登录认证及退出(自定义form认证器)
  7. java与flex通信_Flex与Java通信教程
  8. Tomcat连接池配置
  9. compareAndSwapInt
  10. 再多迷茫,不如静下来好好学习
  11. 面向切面编程--AOP(二)
  12. 状态模式(State Pattern)
  13. Python中缀表达式转后缀表达式并计算
  14. Asp.Net无刷新分页( jquery.pagination.js)
  15. 几种常见的基于Lucene的开源搜索解决方案对比
  16. Map转成JSON对象
  17. 桌面打开计算机快捷,双击电脑桌面快捷方式图标弹出打开方式对话框的解决方法...
  18. 郑大计算机组成原理(专科)试卷 答案,专科《数字电路与逻辑设计》
  19. 哪些排序是不稳定的?稳定又意味着什么?
  20. 数字IC前端笔试常见大题整理(简答+手撕)

热门文章

  1. 教师资格证报名显示内核服务器错误,中小学教师资格证报考支付卡状态失效是怎么回事?..._教师资格考试_帮考网...
  2. 【解决方案】阿里企业云邮箱 报错 526 Authentication failure[0]
  3. SDAutoLayout快速实现Cell的高度自适应
  4. C Primer Plus 第五章 编程练习
  5. input之怎么清除默认值
  6. web前端大作业 (仿英雄联盟网站制作HTML+CSS+JavaScript) 学生dreamweaver网页设计作业
  7. Skyline TerraExplorer 自定义飞行转弯速度不管用解决办法
  8. nyoj 1248 海岛争霸
  9. vscode私钥设置_VScode链接服务器并配置公钥-SSH Keys
  10. [源码解析] 深度学习分布式训练框架 horovod (11) --- on spark --- GLOO 方案