Skip to main content

Top 12 Matlab projects from matlabsolutions.com

Looking for inspiring MATLAB projects to sharpen your skills or impress in your next assignment? At MATLABSolutions.com , we’ve curated the top 12 MATLAB projects that showcase the power of MATLAB in signal processing, image analysis, machine learning, and more. These hands-on examples, complete with code and explanations, are perfect for beginners and advanced users alike. Dive in and explore the best MATLAB projects to elevate your expertise! Signal Smoothing with Moving Average Filter Master signal processing by smoothing noisy data using MATLAB’s movmean function. This project cleans a synthetic sine wave, teaching you noise reduction basics. Ideal for audio or sensor data analysis. Get the code at MATLABSolutions Projects Image Edge Detection Using Canny Filter Explore image processing with MATLAB’s Canny edge detection algorithm. This project highlights edges in any photo, perfect for computer vision applications. Download the script and try it on your own images! Bitcoin Price ...

Why Cross Correlation (xcorr) of Two simultaneously Recorded Audio Signals Always return randomly different lags?

 Hi everyone! I'm working on a sound localization project in which I record two audio  signals simultaneously and then take their 'cross correlation' to find out the "lags" existing between the two signals! But what happens is that every time a random angle is calculated because of the abrupt values of the lags each time! I don't know where I'm going wrong! Please guide me if there is a better approach to achieve a better sound localization ! The code is given as follows:

   if true
  fs = 48000 ; %sampling frequency in Hz
  recObj1 = audiorecorder(fs, 16, 1, 1);
  recObj2 = audiorecorder(fs, 16, 1, 2);

record(recObj1);
record(recObj2);

pause(5);         % record for 5 seconds simultaneously 

stop(recObj1);
stop(recObj2);

out1 = getaudiodata(recObj1, 'int16');
out2 = getaudiodata(recObj2, 'int16');

    L = out1 ;
    R = out2 ;

t1 = (0:length(L)-1)/fs;
t2 = (0:length(R)-1)/fs;

figure;

plot(t1,L);
figure;
plot(t2,R);
 threshold = 100;

k=1;
win =200 ;
[k max(L) max(R)]
if max(L)>th && max(R)>th     %set power threshold

[c, lags] = xcorr(L, R);
[a1,b1] = max(L);
[a2, b2] = max(R);
[a3, b3] = max(c);
s = lags(b3);   
time_delay = s/fs ; 
disp(time_delay);
 s = abs(s);            % taking absolute of s

disp('Estimated angle');
 c = 342;       % avg speed of sound at room temperature
dis = 1 ;       % mean distance between the two microphones                 
cal = ((time_delay*c)/dis) ;
if cal<-1
cal=-1;
elseif cal>1
cal=1;
end
ang =((acosd(cal))

disp(ang);     %displays the angle of sound source due to these microphones

    end


ANSWER



Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.


I work at Matlabsolutions in the Audio System Toolbox team. I can't exactly replicate your experiement as I don't have your hardware, but I could notice a few possible sources of issues.
 
In your code you seem to be acquiring  simultaneously from two different devices using the default audio drivers (typically DirectSound or WASAPI on Windows). That gives you no guarantee of synchronous acquisition for L and R. The two devices themselves may be triggered asynchronously by the operating system, giving you an arbitrary new delay between the two signals every single time you run your script.
 
The simplest guarantee of a synchronous acquisition comes from acquiring different channels of the same device, ideally using its ASIO driver instead of the default one. ASIO drivers guarantee synchronous multi-channel acquisition.

Comments

Popular posts from this blog

Top 12 Matlab projects from matlabsolutions.com

Looking for inspiring MATLAB projects to sharpen your skills or impress in your next assignment? At MATLABSolutions.com , we’ve curated the top 12 MATLAB projects that showcase the power of MATLAB in signal processing, image analysis, machine learning, and more. These hands-on examples, complete with code and explanations, are perfect for beginners and advanced users alike. Dive in and explore the best MATLAB projects to elevate your expertise! Signal Smoothing with Moving Average Filter Master signal processing by smoothing noisy data using MATLAB’s movmean function. This project cleans a synthetic sine wave, teaching you noise reduction basics. Ideal for audio or sensor data analysis. Get the code at MATLABSolutions Projects Image Edge Detection Using Canny Filter Explore image processing with MATLAB’s Canny edge detection algorithm. This project highlights edges in any photo, perfect for computer vision applications. Download the script and try it on your own images! Bitcoin Price ...

How to PID tuning to meet conditions for settling time and overshoot

  PID tuning to meet conditions for settling time and overshoot while a stable system with minimum peak time and zero velocity error. So I am trying to find the gain values for a PI control system that would give me a settling time not exceeding 6 seconds, and an maximum overshoot not going over 5% while ensuring that the peaktime is the lowest it can be, and that the system is stable, and also has zero velocity error. I have written the following code. Starting with a kp and ki value of 1 each, I get a system that gives desirable overshoot and settling time, but I am wondering if the peaktime can be even lower while still having settling time <= 6 and overshoot <= 5. I am using the following toolboxes: Control System Toolbox Questions Using the rlocus function, I have also shown that the real parts of the poles are negative, so this demonstrates that my system is stable right? Also am I using Lsim correctly to determine if velocity error is zero? The resultant graph has a gr...

How can I make the mean of 3d matrices in a cell in Matlab?

  I have a 1x12 cell in Matlab and each element of this cell has a 3d matrix. I want to make the mean of these 3d matrices, so that I obtain a 3d matrix that has the same dimensions of each one of the 3d matrices of the cell and that is the mean of the 12 3d matrices. How can I do this operation ? I tried to extract each cell and create a 4d matrix so that I could do  mean(fourdmatrix,4)  . However, it seems not possible to create a 4d matrix. Ideed, a code like this:   cell={threedmatrixA, threedmatrixB, ...} fourdmatrix=[]; for i=1:12 fourdmatrix(i)=cell{i}; end does not work. How can I do it ?     NOTE:- Matlabsolutions.com  provide latest  MatLab Homework Help, MatLab Assignment Help  ,  Finance Assignment Help  for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projec...