FM Radio (Transmitter + Receiver) in Matlab
92 次查看(过去 30 天)
显示 更早的评论
Hello all. I want to design an FM radio (transmitter + receiver) using Matlab (not Simulink). Is it possible in Matlab? If yes, how? I am using stereo headphones as antenna on my laptop but I don't know how to get the signal from the headphone into Matlab code. Best regards.
5 个评论
nanren888
2019-1-10
So, you're not actually wanting to use Matlab to do design, you want to use Matlab to implement the receiver.
Clearly, you're going to have to invest in some hardware.
Maybe while googling for that, consider also googling gnuradio and similar.
Mohammed Irfan Kalathil Parambil
2021-6-14
How do we design an FM transmitter and reciever using Simulink?
采纳的回答
Ethem
2019-3-20
编辑:Darel
2021-6-25
Communications Toolbox supports several software defined radio (SDR) platforms. You can use these SDR platforms to transmit and receive FM radio signals using MATLAB.
Check this page: https://www.mathworks.com/discovery/sdr.html
You can design FM transmitter and receiver using MATLAB. See these examples:
You can use these System objects:
9 个评论
Ethem
2021-6-15
编辑:Ethem
2021-6-25
@Mohammed Irfan Kalathil Parambil, you can transmit any signal with these models including music. It will just FM modulate and send through the SDR device. You will need an SDR device. See the list above. Regarding AWGN channel, since you will be using an SDR device, you will have a real channel. If we only consider the channel effects, assuming you have a line-of-sight setup and a short distance, it can be approximated as an AWGN channel. But, you will still see the hardware impairments, such as timing and frequency offsets. So, when you have SDR devices, you will never have an AWGN only channel.
更多回答(1 个)
saeed S
2022-5-22
انتهى %For the option to change default settings, set cmdlineInput to 1. cmdlineInput = 0; if cmdlineInput % Request user input from the command-line for application parameters userInput = helperFMUserInput; else load('defaultinputsFM.mat'); end
% Calculate FM system parameters based on the user input [fmRxParams,sigSrc] = helperFMConfig(userInput);
% Create FM broadcast receiver object and configure based on user input fmBroadcastDemod = comm.FMBroadcastDemodulator(... 'SampleRate', fmRxParams.FrontEndSampleRate, ... 'FrequencyDeviation', fmRxParams.FrequencyDeviation, ... 'FilterTimeConstant', fmRxParams.FilterTimeConstant, ... 'AudioSampleRate', fmRxParams.AudioSampleRate, ... 'Stereo', false);
% Create audio player player = audioDeviceWriter('SampleRate',fmRxParams.AudioSampleRate);
% Initialize radio time radioTime = 0;
% Main loop while radioTime < userInput.Duration % Receive baseband samples (Signal Source) if fmRxParams.isSourceRadio if fmRxParams.isSourcePlutoSDR rcv = sigSrc(); lost = 0; late = 1; elseif fmRxParams.isSourceUsrpRadio rcv= sigSrc(); lost = 0; else [rcv,~,lost,late] = sigSrc(); end else rcv = sigSrc(); lost = 0; late = 1; end
% Demodulate FM broadcast signals and play the decoded audio
audioSig = fmBroadcastDemod(rcv);
player(audioSig);
% Update radio time. If there were lost samples, add those too.
radioTime = radioTime + fmRxParams.FrontEndFrameTime + ...
double(lost)/fmRxParams.FrontEndSampleRate;
end
% Release the audio and the signal source release(sigSrc) release(fmBroadcastDemod) release(player)
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!