CEN/EEN330 Course Project
Title: Signal Mixing and Source Separation
Tools: MATLAB
Due Date: 4 June 2025
Project Overview
This project introduces students to the concepts of random signal mixing and source separation through a simplified version of the Cocktail Party Problem. Using MATLAB, you will explore how signals can be mixed using a known matrix, and how they can be recovered using two statistical methods: Principal Component Analysis (PCA) and Independent Component Analysis (ICA).
The project focuses on key probabilistic concepts such as Gaussianity, the Central Limit Theorem (CLT), statistical independence vs. correlation, and the effect of additive white Gaussian noise on signal recovery.
Learning Objectives
By completing this project, you will:
Task Breakdown
1. Setup and Signal Mixing
2. Signal Recovery
· Save all signals (original, mixed, ICA, PCA) as .wav files.
3. Analysis and Comparison
Expected Report Structure
Section 1: Introduction
Section 2: Methodology
Section 3: Results
· Observations on saved .wav files
Section 4: Discussion
Section 5: Conclusion
Provided Materials
Submission Requirements
MATLAB Starter Code Snippets
Loading a Source Signal
[s1, fs1] = audioread(voice.wav’);
Adjust Length of a signal
minLen = min(length(x1), length(x2));
x1 = x1(1:minLen);
Convert a signal to a row vector
x1 = x1(:)’;
Normalize a signal to [-1,1]:
x1 = x1 / max(abs(x1));
Combine the voice and music signals
S = [x1; x2];
S = S – mean(S, 2);
S = S ./ std(S, 0, 2);
Mixing and Noise Addition
A = [1 0.5; 0.4 1];
X = A * S;
Add Gaussian Noise
noise_power = 0.01 * var(X, 0, 2); % Adjust scale as needed
noise = sqrt(noise_power) .* randn(size(X));
X_noisy = X + noise;
Apply ICA
r = 2;
[Zica, ~, ~, ~] = fastICA(X_noisy, r);
Apply PCA
[coeff, score, ~] = pca(X_noisy’);
pca_sig = score(:,1:2)’;
Results Examples
figure;
time = (0:minLen-1) / fs1;
subplot(4,2,5); plot(time, Zica(1,:)); title(‘Recovered Signal 1 (ICA)’);
audiowrite(fullfile(audio_path,’ica_recovered1.wav’), Zica(1,:)’, fs1);
fprintf(‘ICA1 vs Original Voice: %.3fn’, corr(Zica(1,:)’, S(1,:)’));
fprintf(‘PCA Signal 1: %.3fn’, kurtosis(pca_result(1,:)));
figure;
subplot(4,2,1); histogram(S(1,:), 100); title(‘Histogram: Original Signal 1’);
Essay Writing Service Features
Our Experience
No matter how complex your assignment is, we can find the right professional for your specific task. Custom Essay Writing Services for Students Worldwide is an essay writing company that hires only the smartest minds to help you with your projects. Our expertise allows us to provide students with high-quality academic writing, editing & proofreading services.Free Features
Free revision policy
$10Free bibliography & reference
$8Free title page
$8Free formatting
$8How Our Essay Writing Service Works
First, you will need to complete an order form. It's not difficult but, in case there is anything you find not to be clear, you may always call us so that we can guide you through it. On the order form, you will need to include some basic information concerning your order: subject, topic, number of pages, etc. We also encourage our clients to upload any relevant information or sources that will help.
Complete the order form
Once we have all the information and instructions that we need, we select the most suitable writer for your assignment. While everything seems to be clear, the writer, who has complete knowledge of the subject, may need clarification from you. It is at that point that you would receive a call or email from us.
Writer’s assignment
As soon as the writer has finished, it will be delivered both to the website and to your email address so that you will not miss it. If your deadline is close at hand, we will place a call to you to make sure that you receive the paper on time.
Completing the order and download