如何创建一个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中央找到宝藏,发现社区如何可以帮助你!

开始狩猎!