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
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
How do we design an FM transmitter and reciever using Simulink?

请先登录,再进行评论。

采纳的回答

Ethem
Ethem 2019-3-20
编辑:Darel 2021-6-25
  9 个评论
Mohammed Irfan Kalathil Parambil
Also could we use an awgn channel to transmit signals?
Ethem
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
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)

类别

Help CenterFile Exchange 中查找有关 Signal Processing 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by