DSP音频功能块到音频输出
Posted
技术标签:
【中文标题】DSP音频功能块到音频输出【英文标题】:DSP Audio Function Block to Audio Output 【发布时间】:2013-09-18 14:55:20 【问题描述】:我有一个 simulink 块,它从 matlab 中获取一个函数,并将其输出作为“到音频设备”图的输入。我得到的错误是 Port Audio: Invalid number of channels..所以我添加了变量 H 以使用 DSP.AudioRecorder 录制音频,但我不能将其设置为输出 H = fcn() .. 所以主要问题是最简单的方法是什么,因为我现在很迷茫。谢谢!
我的以下代码是:
function y = fcn()
%#codegen
Fs = 125; %# Samples per second
toneFreq = 50; %# Tone frequency, in Hertz
nSeconds = 2; %# Duration of the sound
y = sin(linspace(0, nSeconds*toneFreq*2*pi, round(nSeconds*Fs)));
coder.extrinsic('sound');
coder.extrinsic('audiowrite');
H = dsp.AudioRecorder('DeviceName','Default', 'SampleRate', 48000, 'BufferSizeSource', 'Property', 'BufferSize', 512, 'NumChannels', 2);
step(H);
sound(y, Fs); %# Play sound at sampling rate Fs
audiowrite(y, Fs, 8, 'tone_50Hz.wav'); %# Save as an 8-bit, 1 kHz signal
【问题讨论】:
【参考方案1】:“到音频设备”块将每一列视为一个通道。在从 fcn 作为输出返回之前,您应该转置数据 y。
目前您遇到了错误,因为您有一个行向量作为 y,并且此行向量中的每个样本都被视为一个单独的通道。
【讨论】:
以上是关于DSP音频功能块到音频输出的主要内容,如果未能解决你的问题,请参考以下文章