如何创建一个MATLAB代码产生音频正弦波信号的频率范围从1Hz到15kHz,并在实时绘图。

19次浏览(过去30天)
征服者艾哈迈德
征服者艾哈迈德 2021年9月28日
编辑: jibrahim 2021年10月7日
我使用MATLAB进行工程计算近3年,但我不知道如何“如何创建一个MATLAB代码来产生频率范围从1Hz到15kHz的音频正弦波信号,并实时绘制它。”我请求工作人员帮助我生成这段代码。

答案(2)

杰夫•海斯
杰夫•海斯 2021年9月28日
扎法尔-见相关部分 噪声信号 如何产生一个特定频率的正弦波的例子。您将需要确定如何在不同的频率之间转换(或者它们是独立的图吗?)以及“实时”组件是什么。
1评论
征服者艾哈迈德
征服者艾哈迈德 2021年9月29日
先生,“噪声信号”的例子是关于创造信号的,它是傅里叶变换等,我想要一个音频信号的频率范围从1Hz到15kHz。

登录评论。


jibrahim
jibrahim 2021年9月29日
扎法尔,你可以做到这一点 audioOscillator timescope .下面是一个例子。
生成并可视化一个可变频率的正弦波
osc = audioOscillator (的正弦);
范围= timescope (“SampleRate”osc。SampleRate,...
“TimeSpanSource”“属性”“时间间隔”, 0.1,...
“YLimits”(-1.5 - 1.5),...
“标题”“变频正弦波”);
counter = 0;
(柜台< 1 e4)
Counter = Counter + 1;
范围(osc ());
如果国防部(计数器,1000)= = 0
osc。频率= osc。频率+ 50;
结束
结束
2的评论
jibrahim
jibrahim 2021年10月7日
嗨征服者,
如果你想要基于自定义波产生一个周期信号,那么我建议你看一看 wavetableSynthesizer
如果你的信号是一个很长的MATLAB矢量,你想要流化它,你可以一次传递一帧给for循环。是这样的:
x = randn (1 e6, 1);假设这是你的信号
frameLength = 1024;
counter = 1;
(柜台<地板(大小(x, 1) / frameLength))
帧= x ((counter-1) * frameLength + 1:计数器* frameLength);
Counter = Counter + 1;
范围(框架);
结束

登录评论。

标签

社区寻宝

在MATLAB Central中找到宝藏,并发现社区可以如何帮助你!

开始狩猎!