木的人回答

自己做吧:(

function [t,xt]=MySin(A0,f0,P0,N,fs)

%   MySin产生一个指定幅值和频率的正弦信号.

%   MySin(A0, f0)返回一个时间t数组和一个幅值xt数组.

%   A0:幅值, f0:频率, P0:相位, dt:时间间隔, N:数据点数,fs:采样率

%   例如要生成幅值为5,频率为10Hz,相位为0的正弦信号,如此输入便可:[t,xt]=MySin(5,10,0,2048,1024)

%   当前版本:1.0

%   作  者:richardpan,Matlab

%   完成日期:2009年03月04日

if nargin<5

error('输入变量太少!');

end

if nargin >5

error('输入变量太多!');

end

%A0=5;                                                                                              %幅值为5

%f0=10;                                                                                             %频率为10HZ

%fs=1024;                                                                                            %采样率

t=0:1/fs:1;                                                                                         %采样点个数为length(t)

xt=A0*sin(2*pi*f0*t+P0);                                                                            %根据公式x(t)=A*sin(2*pi*f*t+P)生成指定频率和幅值的正弦信号

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A0=5;

f0=20;

N=2048;

fs=1024;

P0=pi/2;                                                                   %因为三角波的傅里叶展开式是余弦函数,欲用MySin叠加生成,则需将初相位设为90°

b=f0;                                                                      %将基频赋给b

a=1:2:1024;

PanSin=[];                                                                 %正弦信号叠加数组

for n=1:30                                                                 %n为叠加个数,设最大30

f0=a(n)*b;                                                              %各个谐波频率

[t,xt]=MySin(A0,f0,P0,N,fs);                                            %调用[t,xt]=MySin(A0,f0,P0)函数

PanSin(1:length(t),n)=1/(a(n)^2)*xt                                      %进行叠加

end                                                                        %30次叠加完成后,PanSin数组中是30列长度为length(t)的数据

b=PanSin';                                                                 %求转置

y2=A0/2+sum(b(1:2,:));                                                     %取前2行叠加

y5=A0/2+sum(b(1:5,:));                                                     %取前5行叠加

y10=A0/2+sum(b(1:10,:));                                                   %取前10行叠加

y20=A0/2+sum(b(1:20,:));                                                   %取前20行叠加

y30=A0/2+sum(PanSin');                                                     %取前30行叠加

plot(t(1:103),y2(1:103),'-r');                                             %绘图,只显示2个周期

hold on

plot(t(1:103),y5(1:103),'-g');

plot(t(1:103),y10(1:103),'-y');

plot(t(1:103),y20(1:103),'-m');

plot(t(1:103),y30(1:103),'-b');

title(['用正弦信号构造三角波信号'],'fontsize',14);

xlabel('t(ms)','fontsize',14);                                             %设置x轴标题为t(ms)

ylabel('x(t)','fontsize',14);                                              %设置y轴标题为x(t)

axis tight;

legend('2个正弦信号','5个正弦信号','10个正弦信号','20个正弦信号','30个正弦信号');

matlab 正弦信号合成三角波,【matlab求助】正弦波叠加成三角波信号相关推荐

  1. 基于matlab的音乐合成论文,基于matlab软件的音乐合成毕业论文.doc

    基于matlab软件的音乐合成毕业论文.doc 河北经贸大学毕业论文基于MATLAB软件的音乐合成专业名称电子信息工程班级201102学生姓名王雪指导老师章瑞平完成时间2015年5月河北经贸大学毕业论 ...

  2. 图片合成matlab,【Matlab】表情合成尝试(1)——Matlab图像基本

    在之前就有提到的老师叫做的大坑,可其实完全不知道该怎么写,这个系列不知道能做到哪里,东西做还是会做完,可是系列可能未来会坑掉.嘛,有一期是一期的东西,那么这个系列目前应该算是记录自己的学习轨迹和笔记了 ...

  3. 基于matlab的信号合成与分解,基于matlab的信号合成与分解

    基于matlab的信号合成与分解 - I - 摘 要 为了便于进行周期信号的分析与处理,常要把复杂的周期信号进行分解,即将周期 信号分解为正余弦等此类基本信号的线性组合,通过对这些基本信号单元在时域和 ...

  4. matlab电路仿真三角波,Matlab仿真: 1Mhz正弦载波与2kHz三角波调制信号进行调制仿真...

    %Matlab仿真: 1Mhz正弦载波与2kHz三角波调制信号进行调制仿真 %======================= %1,2,5,2kHz三角波的产生: clear;clc; f_tri=1 ...

  5. 基于matlab的信号合成与分解,基于Matlab周期信号的分解与合成

    计 算 机 与 现 代 化 2011 年第 9 期 JISUANJI YU XIANDAIHUA 总第 193 期 文章编号:1006-2475( 2011) 09-0156-03 收稿日期:2011 ...

  6. matlab相关性分析频谱_利用Matlab绘制正弦信号的频谱图并做相关分析[共6页]

    <利用Matlab绘制正弦信号的频谱图并做相关分析[共6页]>由会员分享,可在线阅读,更多相关<利用Matlab绘制正弦信号的频谱图并做相关分析[共6页](6页珍藏版)>请在人 ...

  7. MATLAB输出四种常用波形(方波、正弦波、三角波、锯齿波)

    1.我们在处理数学以及信号的时候经常会用到MATLAB,因为它可以使我们直观地观察到我们需要的信号的模型.因此掌握基本的MATLAB还是有必要的.这里我们来讲解一下如何用MATLAB产生四种常用波形( ...

  8. Matlab写出三角波,matlab生成三角波数据

    学习并研究方波和三角波信号的卷积有关理论; 3.利用 Matlab 编程,完成方波和三角波信号的卷积及卷积过程演示课题; 4.写出课程设计报告,打印程序,给出运行结果.... 学习并研究方波和三角波信 ...

  9. matlab复杂噪声产生实验报告,基于小波信号的噪声消除matlab实验报告.docx

    基于小波信号的噪声消除matlab实验报告.docx 南京师范大学物理科学与技术学院医用电子学论文论文名称:基于小波变换的心电信号噪声消除院系:物科院专业:电路与系统姓名:聂梦雅学号:12100204 ...

  10. 【心电信号】基于matlab小波阙值心电信号去噪【含Matlab源码 2188期】

    ⛄一.小波阈值法去噪概述 电能质量扰动信号的噪声大多以高斯白噪声的形式存在,利用小波变换对信号进行多分辨率分解,由于小波变换具有去除数据相关性的特点,故可以将有用信号与噪声的能量分离开来.信号中有效的 ...

最新文章

  1. C#实现HttpPost提交文件
  2. 《Adobe Fireworks CS6中文版经典教程》——1.2工具面板
  3. HDU-3507Print Article 斜率优化DP
  4. Windows下使用IDEA+Maven搭建本地Hadoop环境
  5. IOS开发--TextField
  6. 收藏 | 图像识别的可视化解释史
  7. Bootstrap 打印机类
  8. HDU-3072-IntelligenceSystem(tarjan,贪心)
  9. 2021 最热门的 20 个数据库学习总结,你会用哪几个
  10. Qt5开发工具---常用Qt5开发工具(附下载地址)
  11. pyaudio音频录制
  12. 获取QQ好友列表接口分析
  13. pytorch转onnx: step = 1 is currently not supported以及Exporting the operator silu to ONNX opset version
  14. 炼丹笔记三:数据增强
  15. 计算机网络怎么看ip地址类别,如何查找ip地址 ip地址分类介绍【图解】
  16. android最好的画图笔记app,盘点:好用的笔记类APP有哪些?
  17. 郑立:一个80后互联网创业神话的倒掉
  18. 意识与本我、自我、超我理论
  19. mac android 文件管理器,PC和Mac浏览安卓手机上文件最快的方式,只需两步
  20. VVC/JEM代码学习12:transformNxN

热门文章

  1. P1436 棋盘分割
  2. JavaScript模式:字面量和构造函数
  3. Unity3D官方案例--太空射击游戏总结
  4. CUDA加速——共享内存介绍及其应用
  5. Kinect:少年你步履蹒跚是不是没睡好
  6. C# WinForm程序 PDF文档分割代码实现
  7. 海定计算机计算标准差,方差 标准差
  8. 巅峰战舰 服务器维护,《巅峰战舰》停止充值关闭服务器公告
  9. 计算机基础与office应用教程,计算机基础与Office 2010实用教程
  10. 宝付国际一文读懂:跨境电商的外汇风险敞口(四)