设信号x(t)=cos(2π×50t)+2×cos(2π×400t),试将它的两个频率分量分离,并绘制它们的时域波形及频谱图

news2025/7/27 17:45:29

以下程序无需赋值,直接运行即可:

(已验证可以运行)

function [yl,yh]=shiyan49

fs=1600; %采样频率

Tt=0.02; %信号周期

T0=4*Tt; %记录长度

[xn,wk,N]=shiyan40(fs,T0);

M=length(wk);

if M==2 

rp=1;rs=80;

    f1=wk(1)*fs/N;

    f2=wk(2)*fs/N;

    f0=f2-f1;

    fpl=f1+f0/20; fstl=f2-f0/10; %模拟低通滤波器的特征参数

    [bzl,azl]=shiyan42(fpl,fstl,rp,rs,fs); 

    fph=f2-f0/2;fsth=f1+f0/20; %模拟高通滤波器的特征参数

    [bzh,azh]=shiyan43(fph,fsth,rp,rs,fs); 

end

ynl=filter(bzl,azl,xn); %序列xn通过数字低通滤波器,输出为ynl

ynh=filter(bzh,azh,xn); %序列xn通过数字高通滤波器,输出为ynh

knl=abs(fft(ynl)); % ynl的频谱knl

kl=knl/max(knl); % ynl的幅度归一化频谱kl 

knh=abs(fft(ynh)); kh=knh/max(knh);

T=1/fs;

figure(8)

t=0:T:(T0-T);

w=0:2*pi/N:(2*pi-2*pi/N);

subplot(2,2,1); plot(t,ynl);

subplot(2,2,2); stem(w,kl);

subplot(2,2,3); plot(t,ynh);

subplot(2,2,4); stem(w,kh);

%去掉滤波输出序列的头一个周期

yl=ynl(N/4+1:N);

yh=ynh(N/4+1:N);

knl=abs(fft(yl)); kl=knl/max(knl);

knh=abs(fft(yh)); kh=knh/max(knh);

N=length(kl);

t=Tt:T:(T0-T);

w=0:2*pi/N:(2*pi-2*pi/N);

figure(9)

subplot(2,2,1)

plot(t,yl);

xlabel('秒'); title('低频分量时域波形')

subplot(2,2,2); 

stem(w,kl)

xlabel('数字频率/弧度 ');title('低频分量归一化频谱图')

subplot(2,2,3)

plot(t,yh);

xlabel('秒'); title('高频分量时域波形')

subplot(2,2,4)

stem(w,kh)

xlabel('数字频率/弧度 '); title('高频分量归一化频谱图')

 

function [xn,wk,N]=shiyan40(fs,T0)

T=1/fs;

t=0:T:(T0-T);

xn=cos(100*pi*t)+2*cos(800*pi*t);

xk=fft(xn);

N=length(xn);

i=1;

wk=0;

for m=1:1:(N+1)/2

   if (abs(xk(m))>0.0001)

       wk(i)=m-1;

       i=i+1;

    end

end

n=0:1:N-1;

figure(1)

subplot(2,1,1)

plot(t,xn);

subplot(2,1,2)

stem(n,abs(xk),'r')

 

function [Ba,Aa,Wn]=shiyan41(mp,ms,rp,rs) 

%生成归一化频率的模拟低通滤波器

[N,Wn]=buttord(mp,ms,rp,rs,'s');%mp/ms:通带/阻带截止频率(弧度%/秒)

[z,p,k]=buttap(N);

[Ba,Aa]=zp2tf(z,p,k);

 

function [bz,az]=shiyan42(fp,fst,rp,rs,fs) 

%数字低通滤波器的生成

W0=[0,fp,fst,fs/2]; rr=[rp,rp,rs,rs];%设计指标

mp=fp*2*pi;

ms=fst*2*pi; %mp/ms:通带/阻带截止频率(弧度/秒)

[Ba,Aa,Wn]=shiyan41(mp,ms,rp,rs);

[b,a]=lp2lp(Ba,Aa,Wn);%将归一化频率的低通滤波器转换成截止频

%率为Wn的数字低通滤波器

[bz,az]=bilinear(b,a,fs);

[H,W]=freqz(bz,az);   

figure(2);

plot(W*fs/(2*pi),20*log10(abs(H)));

hold on

plot(W0,-rr,'r')

xlabel('频率/Hz')

ylabel('幅频特性/dB')

grid

 

function [bz,az]=shiyan43(fp,fst,rp,rs,fs) 

%数字高通滤波器的生成

W0=[0,fst,fp,fs/2]; rr=[rs,rs,rp,rp]; %设计指标

wp=fp*2*pi/fs; ws=fst*2*pi/fs; %模拟指标数字化

    C=2*fs; %频率预畸

    hp=C*tan(wp/2); hs=C*tan(ws/2);

    mp=hp; ms=hp^2/hs; %模拟高通指标转化为模拟低通指标

[Ba,Aa,Wn]=shiyan41(mp,ms,rp,rs);

[b,a]=lp2hp(Ba,Aa,mp); %将归一化频率的低通滤波器转换成截止

%频率为Wn的高通滤波器

[bz,az]=bilinear(b,a,fs);

[H,W]=freqz(bz,az);

figure(3)

plot(W*fs/(2*pi),20*log10(abs(H)));

hold on

plot(W0,-rr,'r')

xlabel('频率/Hz')

ylabel('幅频特性/dB')

grid

 

 

运行结果截图:

e8d65e2d6d234961bededfcd1295f787.png

13f445b3bc224991b5d8d8e5079cafa2.png 

ae8c5952b2234f9b9e46b0ca6f904463.png 

a11671b7b72e4b78abc6a48f432b9af1.png 

c9d7e9b2321c4f838676d64097428517.png 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/16674.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

升余弦滤波器的FPGA实现

目录 升余弦滤波器与无码间串扰(一) 升余弦滤波器与无码间串扰(二) 升余弦滤波器的FPGA实现 一、FIR ip核 成形滤波器采用vivado中的FIR ip核实现。滤波器的系数用matlab产生并转成coe文件。 wire m_axis_data_tvalid; rcos_f…

官网下载JAVA的JDK11版本(下载、安装、配置环境变量)

目录 前言: 一、下载JDK11 1.先去浏览器搜索 2.选择Products 3.Java ​编辑 4.往下滑找到Oracle JDK,然后点击 5.往下滑找到Java11,再选择自己的操作系统 6.选择exe这个直接安装的后缀 7.跳出来的弹窗勾选,并点击 8.弹出来一个甲骨文…

树莓派4b linux内核调试(jtag、kgdb)

1、-O0编译树莓派4b linux内核(linux-5.10.95) 内核源码分支: https://github.com/raspberrypi/linux/tree/rpi-5.10.y 参考其他网站,注释掉arch/arm64/include/asm/jump_label.h文件里面的内联汇编分支; 修改arch/arm64/include/asm/memory.h里面的MIN…

大一学生Web课程设计 美食主题网页制作(HTML+CSS+JavaScript)

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

传奇开服教程——传奇微端架设教程-GEE引擎

登录器和网站配置好后,我们进入游戏后会发现是黑屏的,更新不了地图和NPC这些,因为还没有做微端,会黑屏也是正常的。 有些GEE版本有配套的微端程序,有些版本没有,需要自己去gee官网下载更新时间比引擎还靠后…

多层固定分组计算

【问题】 I want to build opening closing report – ITEM_TRANSACTION TABLE- Consider below data– 1.When item is prepared entry is made into table wih NULL indicator.. 2. When Item is issued/sold entry is made into table with ISSUE indicator Date Iname I…

[附源码]SSM计算机毕业设计中学学生学籍管理JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

笔试强训第29天

单选 A选项:当内存访问越界的时候,线程会收到信号,进而进行信号处理。调用信号处理函数。 B选项:ACM时间。 A:最后访问时间,文件被读取而更新的时间 C:状态修改时间,文件的属性或者权…

遨博机械臂URDF功能包ROS仿真

文章目录知识目标1.机械臂URDF功能包文件结构2.URDF模型中的元素和参数3.任务描述3.1 修订launch启动文件参数3.2 URDF功能包编译知识目标 学习机械臂URDF功能包文件结构 掌握机械臂URDF模型文件各元素和参数概念 1.机械臂URDF功能包文件结构 2.URDF模型中的元素和参数 机械…

【mmDetection框架解读】入门篇三、VOC数据集转COCO数据集,在MMDetection中成功运行

目录一、voc数据集转coco数据集二、修改配置二、验证数据集是否转换成功相关源码文件一、voc数据集转coco数据集 执行命令: python tools/dataset_converters/pascal_voc.py ../../../data/devkit ../../../data/coco通过VOC的xml文件生成COCO的json标签文件。 再…

Linux下延时一定时间,又不挂起程序。

0.前言 这是一个解决篇Linux C语言怎么实现通过socket发送一秒数据,上次想要实现做一秒的事情没有写出来,这次解决掉。先推荐一部电影《猩球崛起》三部曲。 1.Linux下的sleep函数。 这个函数的确可以起到延时的作用,但是他会把整个进程挂起&a…

CentOS8替代盘点

常用的替代选项 国外替代 Rocky Linux AlmaLinux Oracle Linux UEK内核 CentOS Stream 国产替代 Anolis OS TencentOS Server(桌面版无法迁移) openEuler OpenCloudOS 宝塔面板 推荐 Rocky/Alma/Oracle linux 8 持保守态度 Centos 8 Stream Anolis(Centos 8 Stream…

L1和L2正则化的三种不同角度的理解

观看B站视频后写的笔记,链接 降低模型复杂度>正则化>减小模型参数个数 0. 前言 正则化是一个专有名词,和正则表达式中的正则没有任何关系。L1和L2正则化就是用L1范数和L2范数来规范模型参数的这么一种方法,Dropout也叫正则化&#x…

[附源码]SSM计算机毕业设计中小型便民药店管理论文JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Linux17 --- 消息队列

一、IPC进程间通信:消息队列 消息队列是在两个进程之间传递二进制块数据的一种简单有效的方式。每个数据块都有一个特定的类型,接收方可以根据类型来有选择地接收数据,而不一定像管道和命名管道那样必须以先进先出的方式接收数据。 Linux消…

BootStrap响应式项目实战之世界杯网页设计

BootStrap实战 目标 响应式布局复习 HTML5的复习 CSS3的复习 了解BootStrap 一.复习 响应式布局:页面可以随着设备的变化而动态改变。 ​ 淘宝:pc端一套页面:不能随着屏幕的缩小而变化; ​ 移动端:另外一套页面&am…

Java中的::

今天在练习SpringBoot的时候,看到了以下这种写法: //实体类: Data public class Book {private Integer id;private String type;private String name;private String description; }//测试类 //实现功能:关键字查询 Test void t…

PCB设计---深入浅出的反弹图

作者:一博科技高速先生成员 孙小兵 众所周知,信号的反射与互连线的阻抗密切相关,可以说互连线中阻抗突变是产生信号反射的最直接原因。但究竟为什么会发生反射,反射对信号的影响是什么样的,信号反射的过程又是如何呢&…

MySql死锁

MySql死锁产生的原因?[面试7.0] 高并发情况下,事务之间对资源的访问顺序交替会导致死锁 加锁失败且出现环时触发死锁 事务1事务2begin;select *from testlock where id1 for update;begin;select *from testlock where id2 for update;select *from testlock where id2 for…

安卓系统的启动

Init.rc启动 创建和挂在启动所需的文件目录初始化和启动属性服务解析init.rc配置文件并启动Ztgote进程 Zygote进程 创建一个Server端的Socket预加载类和资源启动SystemServer进程等待AMS请求创建新的应用程序进程 SystemServer进程 启动Binder线程池,这样就可以…