Skip to content

IMNJL/Signal_processors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Signal_processors

This repository contains lab exercises and implementations for digital signal processing (fixed-point Q15 variants), organized per lab folder.

Summary Table

Lab Files Points Comments
add_vector add_vector.c, add_vector_ref.c, add_vector_fast.c, add_vector_tb.c /10 Complete: main, reference, optimized and testbench present, basic realisation of each folder
lab1 — Adding real-valued signals in Q15 format add_vector_q15.c, add_vector_q15_ref.c, add_vector_q15_fast.c, add_vector_q15_tb.c /10 Complete.
lab2 — Adding real-valued signals in Q15 with saturation add_vector_s0_q15.c, add_vector_s0_q15_ref.c, add_vector_s0_q15_fast.c, add_vector_s0_q15_tb.c /10 Complete.
lab3 — Multiplying real-valued signals in Q15 (lower-half, with saturation) mul_vector_s0_q15.c, mul_vector_s0_q15_ref.c, mul_vector_s0_q15_fast.c, mul_vector_s0_q15_tb.c /10 Complete.
lab4 — Adding real-valued signals in Q15 (1-bit shift) add_signals_q15.c, add_signals_q15_ref.c, add_signals_q15_fast.c, add_signals_q15_tb.c /10 Complete.
lab5 — Multiplying real-valued signals in Q15 (upper-half) mul_vector_s15_q15.c, mul_vector_s15_q15_ref.c, mul_vector_s15_q15_fast.c, mul_vector_s15_q15_tb.c /10 Complete.
lab6 — Multiplying real-valued signals in Q15 (32-bit result) mul_vector_a_q15.c, mul_vector_a_q15_ref.c, mul_vector_a_q15_fast.c, mul_vector_a_q15_tb.c /10 Complete.
lab7 — Multiplying complex signals in Q15 (32-bit result) mul_vector_a_cq15.c, mul_vector_a_cq15_ref.c, mul_vector_a_cq15_fast.c, mul_vector_a_cq15_tb.c /10 Complete.
lab8 — Multiplying complex signals in Q15 (upper-half) mul_vector_s15_cq15.c, mul_vector_s15_cq15_ref.c, mul_vector_s15_cq15_fast.c, mul_vector_s15_cq15_tb.c /10 Complete.
lab9 — Implement convolution in complex Q15 format convolution_cq15.c, convolution_cq15_ref.c, convolution_cq15_tb.c /20 Missing optimized/fast implementation (*_fast.c).
lab10 — Implement FIR (KИХ) filter in Q15 format fir_filter_q15.c, fir_filter_q15_ref.c, fir_filter_q15_tb.c /20 Missing optimized/fast implementation.
lab11 — Implement IIR (БИХ) filter in Q15 format iir_filter_q15.c, iir_filter_q15_ref.c, iir_filter_q15_tb.c /20 Missing optimized/fast implementation.
lab12 — Implement 256-point FFT in Q15 format fft256_q15.c, fft256_q15_ref.c, fft256_q15_tb.c /30 Missing optimized/fast implementation.

Notes & Recommendations

  • The scoring is mechanical and based on the presence of expected files. It does not evaluate correctness or performance. For a grade or automated CI, consider running testbenches and comparing outputs against reference implementations.
  • Recommended next steps for labs with lower scores:
    • Implement an optimized *_fast.c variant (vectorized or algorithmic optimizations) to gain the missing 3 points.
    • Add comments and simple benchmarks to demonstrate speed/complexity improvements.
  • Testbenches: files suffixed with _tb.c are present for many labs. To run them you can compile using your toolchain (example):
gcc -std=c11 -O2 -I. lab1/add_vector_q15.c lab1/add_vector_q15_tb.c -o lab1_tb
./lab1_tb

About

Signal processing function in q15 format

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages