MATLAB Coder for FSK Demodulation
7 次查看(过去 30 天)
显示 更早的评论
Hello,
I am trying to generate c code for FSK Modulation and Demodulation. Following is my function for code generation:
function [modSignal,receivedData,errorStats] = test_my_FSK(data)
%#codegen
M = 4;
freqSep = 100;
fskMod_M = comm.FSKModulator(M,freqSep,'BitInput',true);
fskDemod_M = comm.FSKDemodulator(M,freqSep,'BitOutput',true);
err = comm.ErrorRate;
modSignal = zeros((fskMod_M.SamplesPerSymbol*(length(data)/2)),1)+0i;
receivedData = zeros(length(data),1);
errorStats = zeros(3,1);
for counter = 1:10
modSignal = step(fskMod_M,data);
receivedData = step(fskDemod_M,modSignal);
errorStats = step(err,data,receivedData);
end
end
In the above function, you can observe that I have both FSK modulation and Demodulation. I have no issues converting the modulation part into mex, but when it comes to demodulation it throws the following error:
![Matlab Coder Error.JPG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/239297/Matlab%20Coder%20Error.jpeg)
I was successful in generating mex for just the modulation part, only when I include the demodulation part it fails. Kindly advise.
Also, I observed that,
class for FSK Modulation :
![FSK_Mode_Class_Type.JPG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/239298/FSK_Mode_Class_Type.jpeg)
Whereas that of the demodulator is,
![demod_type.JPG](https://www.mathworks.com/matlabcentral/answers/uploaded_files/239299/demod_type.jpeg)
I have checked MATLAB documentation for comm.FSKDemodulator, it says it is supported for C code generation.
Your help will be greatly appreciated. Kindly advise
2 个评论
Denis Gurchenkov
2019-9-24
This looks like a bug. Can you please attach all the files you have been using (the .m file and .prj file) and also specify what release of MATLAB you are using and what platform?
采纳的回答
Vivek Selvam
2019-9-24
Hi Mounika,
Code generation is successful when using Name-Value pairs for comm.FSKDemodulator as follows:
fskDemod_M = comm.FSKDemodulator('ModulationOrder',M,'FrequencySeparation',freqSep,'BitOutput',true);
The equivalent Simulink blocks (M-FSK Modulator Baseband and M-FSK Demodulator Baseband) support C code generation:
>> web(fullfile(docroot, 'comm/ref/mfskmodulatorbaseband.html'))
>> web(fullfile(docroot, 'comm/ref/mfskdemodulatorbaseband.html'))
Thanks for reporting this bug.
/Vivek
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 FSK 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!