1. Ultra-Short Baseline (USBL) Acoustic Positioning System
Intermediate
Toolbox: Audio & Phased Array
Deliverables: Code .m, Simulink Model, Report
🎯 Problem & Objective: Design, implement, and simulate an Ultra-Short Baseline (USBL) acoustic positioning system for autonomous underwater vehicles (AUVs like Barracuda Mark-X). Uses an array of four RESON TC4013 miniature reference omni-directional hydrophones to acquire 40mV acoustic pulses and compute Time Difference of Arrival (TDOA) and Azimuth/Elevation angles for underwater beacon localization.
⚙️ Key MATLAB Functions:
phased.ULAgccphatxcorrdelayseqatan2
📊 Expected Output & Metrics: 3D target coordinates $(x,y,z)$, TDOA cross-correlation peak plots, spatial positioning accuracy (< 1.5° angular error), and hydrophone array response patterns.
fs = 96000; c = 1500;
d = 0.05;
t = (0:1023)'/fs;
beacon_sig = chirp(t, 25000, t(end), 35000);
tau_true = (d * sind(35)) / c;
h1 = beacon_sig + 0.05*randn(size(t));
h2 = delayseq(beacon_sig, tau_true, fs) + 0.05*randn(size(t));
[tau_est, R] = gccphat(h2, h1, fs);
theta_est = asind((tau_est * c) / d);
fprintf('True Angle: 35.0 deg | Estimated Angle: %.2f deg\n', theta_est);
Est. Duration: 1–2 Weeks
Request Custom Project →
2. Lip Detection and Adaptive Tracking for Audio-Visual ASR
Advanced
Toolbox: Computer Vision & Audio
Deliverables: Code .m, Video Dataset, Report
🎯 Problem & Objective: Automatic speech recognition (ASR) degrades in noisy environments such as car cabins. This project develops an audio-visual ASR (AVASR) front-end combining acoustic speech signals with adaptive video tracking of lip motions using YCbCr color segmentation, cascaded detectors, and mean-shift tracking achieving 96.8% accuracy.
⚙️ Key MATLAB Functions:
rgb2ycbcrvision.CascadeObjectDetectorvision.PointTrackerimbinarizeregionprops
📊 Expected Output & Metrics: Visual lip contour trajectory, mouth height/width ratio parameters, Word Error Rate (WER) reduction from 28% to 6.4%, and real-time tracking overlays.
img = imread('speaker_face.jpg');
ycbcr = rgb2ycbcr(img);
Y = double(ycbcr(:,:,1)); Cb = double(ycbcr(:,:,2)); Cr = double(ycbcr(:,:,3));
lip_map = (Cr ./ (Cb + eps)) - (Cr ./ (Y + eps));
lip_mask = imbinarize(mat2gray(lip_map), 'adaptive');
lip_clean = bwareafilt(lip_mask, 1);
stats = regionprops(lip_clean, 'BoundingBox', 'Centroid');
figure; imshow(img); hold on;
rectangle('Position', stats(1).BoundingBox, 'EdgeColor', 'g', 'LineWidth', 2);
title('Detected Lip ROI for Visual Speech Features');
Est. Duration: 2–3 Weeks
Request Custom Project →
3. Active Noise Cancellation (ANC) Using LMS Adaptive Filtering
Intermediate
Toolbox: DSP System & Audio
Deliverables: Code .m, Simulink Model, Report
🎯 Problem & Objective: Implement an Active Noise Cancellation (ANC) dual-microphone system (reference noise + primary speech). Uses an adaptive Least Mean Squares (LMS / FxLMS) digital filter to generate an anti-noise acoustic wave with exact 180° phase inversion, suppressing background industrial or engine noise.
⚙️ Key MATLAB Functions:
dsp.LMSFilteradaptfilt.nlmsfiltersnrspectrogram
📊 Expected Output & Metrics: Error signal convergence curve, primary noise attenuation (> 18 dB reduction), step-size adaptation stability, and residual noise spectrogram.
N = 10000; fs = 8000;
t = (0:N-1)'/fs;
speech = sin(2*pi*300*t) + 0.5*sin(2*pi*700*t);
noise_ref = randn(N, 1);
noise_primary = filter([0.1 0.4 0.6 0.4 0.1], 1, noise_ref);
mic_signal = speech + noise_primary;
lms = dsp.LMSFilter(32, 'StepSize', 0.01, 'Method', 'Normalized LMS');
[y_anti, err] = lms(noise_ref, mic_signal);
figure; subplot(2,1,1); plot(t(1:500), mic_signal(1:500)); title('Noisy Input');
subplot(2,1,2); plot(t(1:500), err(1:500)); title('Cancelled Clean Speech (Error Signal)');
Est. Duration: 1–2 Weeks
Request Custom Project →
4. Detection of Breathing and Infant Sleep Apnea Using Audio Signal Processing
Beginner
Toolbox: Signal Processing & Audio
Deliverables: Code .m, Fixed-Point Models, Report
🎯 Problem & Objective: Develop an acoustic monitoring device to accurately detect neonatal breathing sounds and issue instantaneous warnings upon respiratory cessation (sleep apnea > 10 seconds). Algorithms are tailored for standalone embedded execution on Xilinx Spartan-6 FPGA / ARM Cortex processors.
⚙️ Key MATLAB Functions:
bandpasshilbertenvelopefindpeaksmovmean
📊 Expected Output & Metrics: Acoustic respiratory envelope, instantaneous breathing rate (breaths/min), apnea alert trigger latency (< 100 ms), and false alarm rejection rate (> 98%).
fs = 4000;
t = (0:fs*30)'/fs;
breathing = (1 + 0.8*sin(2*pi*0.35*t)) .* (0.2*randn(size(t)));
breathing(t >= 12 & t <= 22) = 0.01*randn(sum(t >= 12 & t <= 22), 1);
b_filt = bandpass(breathing, [200 1200], fs);
env = movmean(b_filt.^2, fs*0.5);
apnea_detected = env < 0.005;
figure; plot(t, env, 'b', t, apnea_detected*0.05, 'r--', 'LineWidth', 1.5);
legend('Acoustic Breath Energy', 'Apnea Alert Active'); xlabel('Time (s)');
Est. Duration: 4–6 Hours
Request Custom Project →
5. A Cappella CD Audio Production & MATLAB Pitch Detection Engine
Beginner
Toolbox: Audio & Signal Processing
Deliverables: Code .m, Audio Stems, Report
🎯 Problem & Objective: Complete technical pipeline for multi-track a cappella music CD production. Implements microphone calibration, vocal dynamic compression, harmonic equalization, and develops an autocorrelation / YIN pitch detection algorithm in MATLAB to evaluate vocal intonation accuracy.
⚙️ Key MATLAB Functions:
pitchxcorraudioreadcompressorgraphicEQ
📊 Expected Output & Metrics: Pitch estimation curves (Hz vs. musical notes), dynamic range compression curve, Harmonic-to-Noise Ratio (HNR), and master mix spectrum.
[vocal, fs] = audioread('vocal_lead.wav');
[f0, timeLoc] = pitch(vocal, fs, 'Method', 'NCF', ...
'Range', [75 600], 'MedianFilterLength', 3);
midi_note = 69 + 12*log2(f0 / 440);
figure; subplot(2,1,1); plot((0:length(vocal)-1)/fs, vocal); title('Vocal Waveform');
subplot(2,1,2); plot(timeLoc, f0, 'r', 'LineWidth', 1.5);
ylabel('Pitch (Hz)'); xlabel('Time (s)'); grid on; title('Intonation Contour');
Est. Duration: 6–8 Hours
Request Custom Project →
6. Real-Time Monophonic Pitch Recognition to MIDI Transcription
Intermediate
Toolbox: Audio & DSP System
Deliverables: Code .m, MIDI Export File, Report
🎯 Problem & Objective: Convert live monophonic audio signals (singing voice, flute, violin) into standardized digital MIDI note events in real time. Analyzes single-pitch acoustic frames, estimates fundamental frequency ($F_0$), and streams MIDI Note-On/Note-Off and velocity commands.
⚙️ Key MATLAB Functions:
dsp.AudioFileReaderpitchmidifilerounddiff
📊 Expected Output & Metrics: Real-time MIDI piano-roll visualization, note onset/offset timing accuracy (< 15 ms latency), note quantization accuracy (> 95%), and exported `.mid` file.
fs = 44100; frameSize = 2048;
audioIn = audioread('flute_solo.wav');
f0_vals = []; midi_notes = [];
for i = 1:frameSize:(length(audioIn) - frameSize)
frame = audioIn(i:i+frameSize-1);
f = pitch(frame, fs, 'Range', [100 1200]);
if ~isnan(f) && f > 0
note = round(69 + 12*log2(f/440));
else
note = 0;
end
midi_notes = [midi_notes; note];
end
figure; stem(midi_notes, 'filled'); ylabel('MIDI Note Number'); title('Quantized MIDI Sequence');
Est. Duration: 1–2 Weeks
Request Custom Project →
7. FFT-Based Monophonic Pitch Recognition & Spectral Analysis
Beginner
Toolbox: Signal Processing
Deliverables: Code .m, Report
🎯 Problem & Objective: Implement a high-speed, lightweight monophonic pitch estimation algorithm in MATLAB using Fast Fourier Transform (FFT) power spectrum analysis combined with Harmonic Product Spectrum (HPS) and region-based parabolic peak interpolation.
⚙️ Key MATLAB Functions:
fftabsfindpeakshanningdownsample
📊 Expected Output & Metrics: Magnitude power spectrum, Harmonic Product Spectrum peaks, estimated fundamental frequency $F_0$ with sub-bin resolution, and cents deviation.
fs = 44100; N = 4096;
t = (0:N-1)'/fs;
x = sin(2*pi*440*t) + 0.6*sin(2*pi*880*t) + 0.3*sin(2*pi*1320*t);
X = abs(fft(x .* hann(N), N));
X_half = X(1:N/2);
hps = X_half(1:floor(end/3)) .* downsample(X_half(1:floor(end/1.5)), 2) .* downsample(X_half, 3);
[~, idx] = max(hps);
f0_est = (idx - 1) * (fs / N);
fprintf('Detected Fundamental Pitch: %.2f Hz (Nominal A4 = 440 Hz)\n', f0_est);
Est. Duration: 4–6 Hours
Request Custom Project →
8. Subwoofer Frequency Response Optimization by Means of Active Control
Intermediate
Toolbox: Audio & Control System
Deliverables: Code .m, GUI Model, Report
🎯 Problem & Objective: Design and simulate active biquad equalization (Linkwitz Transform crossover) in MATLAB to extend the low-frequency acoustic response of a sealed subwoofer enclosure from 50 Hz down to 20 Hz, optimizing cone excursion limits and real-time room compensation.
⚙️ Key MATLAB Functions:
tfbodefreqsbiquadstep
📊 Expected Output & Metrics: Extended flat frequency response (+12 dB at 20 Hz), group delay equalization, displacement excursion simulation, and Real-Time Analyzer (RTA) magnitude curve.
f0_box = 45; Q0_box = 0.9;
fp_target = 20; Qp_target = 0.707;
w0 = 2*pi*f0_box; wp = 2*pi*fp_target;
num = [1 (wp/Qp_target) wp^2] * (w0^2 / wp^2);
den = [1 (w0/Q0_box) w0^2];
H_lt = tf(num, den);
figure; bode(H_lt, {2*pi*10, 2*pi*200}); grid on;
title('Linkwitz Transform Equalization Curve for Subwoofer Low-End Extension');
Est. Duration: 1–2 Weeks
Request Custom Project →
9. Development of a Voice Conversion System Using MATLAB
Advanced
Toolbox: Audio & Signal Processing
Deliverables: Code .m, Speech Synthesizer, Report
🎯 Problem & Objective: Implement a static voice conversion system to modify a source speaker's speech utterance so it replicates the acoustic vocal timbre and pitch characteristics of a target speaker without altering linguistic content, using Linear Predictive Coding (LPC) vocal tract modeling and pitch-synchronous overlap-add (PSOLA).
⚙️ Key MATLAB Functions:
lpcfreqzfilterresamplepitch
📊 Expected Output & Metrics: Formant frequency shifts ($F_1, F_2, F_3$), synthesized target speech waveform, Mel-Cepstral Distortion (MCD < 4.8 dB), and Mean Opinion Score (MOS) metrics.
[source_speech, fs] = audioread('source_male.wav');
lpc_order = 16;
a_source = lpc(source_speech, lpc_order);
residual = filter(a_source, 1, source_speech);
roots_a = roots(a_source);
roots_modified = roots_a .* exp(1j * 0.15);
a_target = poly(roots_modified);
converted_speech = filter(1, real(a_target), residual);
soundsc(converted_speech, fs);
Est. Duration: 2–3 Weeks
Request Custom Project →
10. Characterization of Auditory Evoked Potentials from Transient Binaural Beats
Advanced
Toolbox: Signal Processing & Biomedical
Deliverables: Code .m, EEG Dataset Analysis, Report
🎯 Problem & Objective: Investigate Auditory Steady State Responses (ASSR) and cortical entrainment evoked by transient binaural acoustic beats (e.g. 40 Hz gamma stimulation). Employs synchronous averaging and independent component analysis (ICA) to extract sub-microvolt ASSR signals from spontaneous background EEG/MEG activity.
⚙️ Key MATLAB Functions:
filtfiltspectrogrampwelchcpsdmean
📊 Expected Output & Metrics: 40 Hz ASSR spectral amplitude peak, Phase Locking Value (PLV), cortical signal-to-noise ratio enhancement (+14 dB), and time-frequency phase coherency plots.
fs = 1000; t = (0:fs*10)'/fs;
assr_evoked = 0.5 * sin(2*pi*40*t);
raw_eeg = assr_evoked + 5*randn(size(t));
[b, a] = butter(3, [38 42]/(fs/2), 'bandpass');
eeg_filtered = filtfilt(b, a, raw_eeg);
[pxx, f] = pwelch(raw_eeg, 1024, 512, 1024, fs);
figure; plot(f, 10*log10(pxx), 'b', 'LineWidth', 1.5);
xlim([0 80]); xlabel('Frequency (Hz)'); ylabel('PSD (dB/Hz)');
title('EEG Spectrum Showing 40 Hz ASSR Evoked Peak');
Est. Duration: 2–3 Weeks
Request Custom Project →
11. Swept-Tone Evoked Otoacoustic Emissions: Stimulus Calibration & Equalization
Intermediate
Toolbox: Audio & Signal Processing
Deliverables: Code .m, Deconvolution Pipeline, Report
🎯 Problem & Objective: Design and calibrate logarithmic swept-tone (chirp) acoustic stimuli for transient evoked otoacoustic emission (OAE) acquisition. Applies frequency-domain deconvolution and inverse filtering to compress swept-tone responses into high-resolution impulse responses, boosting SNR over conventional click stimuli.
⚙️ Key MATLAB Functions:
chirpfftifftdeconvsemilogx
📊 Expected Output & Metrics: Probe inverse filter transfer function, equalized acoustic chirp in ear canal, compressed OAE latency-frequency dispersion curve, and SNR gain (> 12 dB).
fs = 48000; T = 0.05;
t = (0:1/fs:T)';
f0 = 500; f1 = 8000;
stimulus = chirp(t, f0, T, f1, 'logarithmic');
H = fft(stimulus, 4096);
inv_filter = real(ifft(conj(H) ./ (abs(H).^2 + 0.01)));
compressed_oae = cconv(stimulus, inv_filter, 4096);
figure; plot(compressed_oae); title('Compressed OAE Impulse Response');
Est. Duration: 1–2 Weeks
Request Custom Project →
12. Acquisition and High-Resolution Processing of Otoacoustic Emissions (OAE)
Advanced
Toolbox: Audio & Biomedical
Deliverables: Code .m, OAE Spectrogram Engine, Report
🎯 Problem & Objective: Develop high-resolution digital signal processing algorithms for 24-bit audio capture hardware to extract early-latency, high-frequency (up to 16 kHz) distortion product otoacoustic emissions (DPOAE), with synchronous time-windowing and artifact rejection.
⚙️ Key MATLAB Functions:
dsp.AudioFileReaderpwelchthdcwtbandpass
📊 Expected Output & Metrics: DPOAE DP-gram (2f1-f2 distortion level vs. noise floor), artifact-free synchronous averaging, cochlear diagnostic pass/refer classification, and scalogram plots.
fs = 44100;
f1 = 2000; f2 = 2400;
f_dp = 2*f1 - f2;
t = (0:fs-1)'/fs;
mic_in = sin(2*pi*f1*t) + 0.8*sin(2*pi*f2*t) + 0.001*sin(2*pi*f_dp*t) + 0.0005*randn(size(t));
[pxx, f] = pwelch(mic_in, hann(4096), 2048, 4096, fs);
figure; plot(f, 10*log10(pxx)); xlim([1000 3000]);
grid on; xlabel('Frequency (Hz)'); ylabel('Magnitude (dB SPL)');
title(['DPOAE Peak Extraction at ', num2str(f_dp), ' Hz']);
Est. Duration: 2–3 Weeks
Request Custom Project →
13. De-Noising Audio Signals Using MATLAB Wavelets Toolbox
Intermediate
Toolbox: Wavelet & Audio
Deliverables: Code .m, Audio Compare Files, Report
🎯 Problem & Objective: Remove additive white Gaussian noise, environmental hum, and acoustic hiss from speech and audio recordings across speech recognition, medical acoustics, and sonar using Discrete Wavelet Transform (DWT) multi-level decomposition and soft/hard thresholding.
⚙️ Key MATLAB Functions:
wdenoisewavedecwaverecthselectwthresh
📊 Expected Output & Metrics: Wavelet coefficient detail/approximation sub-bands, comparative SNR enhancement (+16.8 dB), PESQ speech quality score gain, and spectrogram visualizer.
[clean_audio, fs] = audioread('speech_dft.wav');
noisy_audio = clean_audio + 0.08*randn(size(clean_audio));
denoised_audio = wdenoise(noisy_audio, 5, ...
'Wavelet', 'sym8', ...
'DenoisingMethod', 'UniversalThreshold', ...
'ThresholdRule', 'Soft');
snr_before = snr(clean_audio, noisy_audio - clean_audio);
snr_after = snr(clean_audio, denoised_audio - clean_audio);
fprintf('SNR Before: %.2f dB | SNR After Wavelet Denoising: %.2f dB\n', snr_before, snr_after);
Est. Duration: 1–2 Weeks
Request Custom Project →
14. Real-Time Music Note Recognition & Frequency Estimation
Beginner
Toolbox: Audio & Signal Processing
Deliverables: Code .m, Tuner GUI, Report
🎯 Problem & Objective: Real-time estimation of musical notes from acoustic instrument recordings sampled at standard 44.1 kHz. Computes windowed FFT power spectrum, performs region-based peak picking, and maps frequency values to 12-tone equal temperament scale notes (C0 to B8) with cent deviation feedback.
⚙️ Key MATLAB Functions:
audioreadfftfindpeaksmodround
📊 Expected Output & Metrics: Live note name display (e.g., C4, G#5), exact peak frequency (Hz), tuning error in cents, and real-time audio spectrum plot.
noteNames = {'C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B'};
fs = 44100; N = 8192;
t = (0:N-1)'/fs;
x = sin(2*pi*523.25*t) + 0.3*randn(size(t));
X = abs(fft(x .* blackman(N), N));
[~, maxIdx] = max(X(1:N/2));
f_peak = (maxIdx - 1) * (fs / N);
midi_num = round(69 + 12*log2(f_peak / 440));
note_idx = mod(midi_num, 12) + 1;
octave = floor(midi_num / 12) - 1;
fprintf('Detected Note: %s%d (Frequency: %.2f Hz)\n', noteNames{note_idx}, octave, f_peak);
Est. Duration: 4–6 Hours
Request Custom Project →
15. Real-Time Multi-Band Graphic Equalizer with MATLAB GUI & VST Plugin
Intermediate
Toolbox: Audio & App Designer
Deliverables: App .mlapp, VST3 Plugin, Report
🎯 Problem & Objective: Design and deploy an interactive 10-band octave graphic equalizer using MATLAB App Designer. Implements second-order IIR peaking and shelving biquad filters with real-time gain sliders (-12 dB to +12 dB), live spectrum visualizer, and exportable VST plugin binary for digital audio workstations.
⚙️ Key MATLAB Functions:
graphicEQdsp.AudioFileReaderdsp.AudioPlayergenerateAudioPluginfvtool
📊 Expected Output & Metrics: App Designer GUI interface, composite magnitude response curve, real-time audio playback latency (< 8 ms), and compiled `.vst3` plugin.
fs = 44100;
eqObj = graphicEQ('Bandwidth', '1 octave', ...
'Structure', 'Parallel', ...
'SampleRate', fs);
gains = [6, 4, 2, 0, -2, -3, 0, 3, 5, 4];
setGain(eqObj, 1:10, gains);
fileReader = dsp.AudioFileReader('audio_rock.wav', 'SamplesPerFrame', 1024);
audioOut = eqObj(fileReader());
fvtool(eqObj, 'Fs', fs); title('10-Band EQ Frequency Response');
Est. Duration: 1–2 Weeks
Request Custom Project →
16. Speech Emotion Recognition Using MFCCs & Deep CNNs
Advanced
Toolbox: Audio & Deep Learning
Deliverables: Code .m, Trained CNN Model, Report
🎯 Problem & Objective: Classify human emotional states (happy, angry, sad, neutral, fearful) from speech audio. Extracts Mel-Frequency Cepstral Coefficients (MFCCs), delta-MFCCs, and log-mel spectrograms, feeding them into a 2D Convolutional Neural Network (CNN) trained on the RAVDESS dataset with > 88% accuracy.
⚙️ Key MATLAB Functions:
mfccmelSpectrogramtrainNetworkconvolution2dLayerclassify
📊 Expected Output & Metrics: Multi-class confusion matrix, training loss/accuracy curves, classification confidence scores, and feature activation heatmaps.
[audio, fs] = audioread('actor_angry.wav');
[coeffs, delta, deltaDelta] = mfcc(audio, fs, ...
'WindowLength', round(0.03*fs), ...
'OverlapLength', round(0.02*fs), ...
'NumCoeffs', 13);
feature_matrix = cat(3, coeffs, delta, deltaDelta);
disp('Extracted MFCC Feature Tensor:'); disp(size(feature_matrix));
Est. Duration: 2–3 Weeks
Request Custom Project →
17. Room Impulse Response (RIR) Simulation & 3D Spatial Audio
Intermediate
Toolbox: Audio & Signal Processing
Deliverables: Code .m, 3D Binaural Audio, Report
🎯 Problem & Objective: Simulate indoor room acoustics using the Image Source Method. Synthesizes Room Impulse Responses (RIR) based on 3D room geometry $(L \times W \times H)$, wall absorption coefficients, and source/receiver positions, convolving with Head-Related Transfer Functions (HRTF) for immersive 3D binaural listening.
⚙️ Key MATLAB Functions:
convaudioreadaudioplayerfftsurf
📊 Expected Output & Metrics: Simulated RIR waveform, reverberation time ($RT_{60}$) calculation using Sabine formula, 3D ray-tracing acoustic visualizer, and spatialized binaural audio output.
c = 343; fs = 44100;
room_dim = [6, 5, 3];
source_pos = [2, 2, 1.5];
mic_pos = [4, 3, 1.5];
refl_coeff = 0.8;
d_direct = norm(source_pos - mic_pos);
t_delay = d_direct / c;
rir = zeros(round(fs * 0.5), 1);
rir(round(t_delay * fs)) = 1 / d_direct;
anechoic_speech = audioread('speech_dft.wav');
reverberant_speech = conv(anechoic_speech, rir);
figure; plot(rir); title('Simulated Room Impulse Response (RIR)');
Est. Duration: 1–2 Weeks
Request Custom Project →
18. Acoustic Beamforming & Direction of Arrival with Microphone Array
Advanced
Toolbox: Phased Array & Audio
Deliverables: Code .m, Spatial Plots, Report
🎯 Problem & Objective: Implement Delay-and-Sum and Minimum Variance Distortionless Response (MVDR / Capon) acoustic beamforming on a linear microphone array. Estimates the Direction of Arrival (DOA) of speech sources via the MUSIC algorithm and steers spatial beams to isolate desired voices while suppressing directional noise.
⚙️ Key MATLAB Functions:
phased.ULAphased.MVDRBeamformerphased.MUSICEstimatorpolardbazimuth
📊 Expected Output & Metrics: Spatial pseudo-spectrum polar plot with sharp DOA peaks, array directivity pattern, spatial interference rejection ratio (> 24 dB), and cleaned target speech audio.
c = 343; fs = 16000; f_sig = 2000;
array = phased.ULA('NumElements', 8, 'ElementSpacing', 0.5 * (c / f_sig));
target_doa = 30; interferer_doa = -45;
music_est = phased.MUSICEstimator('SensorArray', array, ...
'OperatingFrequency', f_sig, 'ScanAngles', -90:90);
t = (0:1023)'/fs;
sig_target = sin(2*pi*f_sig*t);
sig_noise = randn(length(t), 1);
rx_signals = collectPlaneWave(array, [sig_target sig_noise], [target_doa interferer_doa; 0 0], f_sig, c);
[P_music, scanAngles] = music_est(rx_signals);
figure; plot(scanAngles, 10*log10(P_music), 'LineWidth', 2); grid on;
xlabel('Azimuth Angle (degrees)'); ylabel('MUSIC Spatial Spectrum (dB)');
title('Acoustic Source DOA Estimation Peak at +30°');
Est. Duration: 2–3 Weeks
Request Custom Project →