1. PIC microcontrollers are one of the best MCU for projects since they have ton's of onchip peripherals. (ADC,DAC,PWM,CAN,even USB )
2. PIC microcontrollers found vast application areas in Industrial Automation.Normally students search for HiFi project names n all, but project must be useful and easily implementable in real life/ or It should be pure research based project.
3. As you said you have sound knowledge of PIC MCU, I may suggest you to read "ADVANCED PIC PROJECTS IN C"-Dogan, Really nice book since they have given RTOS implementation in PIC.
4.You may port FreeRTOS in PIC ( www FreeRTOS org) and buil a complete Home Automation System (M not talking about that faltu SMS karo n fan band karo thing).
5. On Microchip Website one application note is about "Power Line Communication" (AN236) Read that. Also Search same word as keyword on Youtube and you may get a really best idea. (If u unable to ask me)
6. Industrial control applications ( Flow control, Level Control, Temperature control) can be implemented( again m not talking about water level controller kinda cheap project) These are smart things with thousand's of line code, since so many settings and so many calibrations. You may refer some products specification to implement.
7. A single PIC can be used as Embedded Web Server (Yes!!!!) think on that ( If unable to search on net, or see in Mikroelektronica sample programs for PIC)
8.Personal care equipments can be made easily using PIC ( Even Personal Entertainments like HDD based portable music player )
9. RF chips from microchip are much compatible with PIC, you may set up WSensorN.
VHDL and hardware implementation of hadamard transform
Hadamard Transform is a generalized class of Fourier transforms. It decomposes an arbitrary input vector into a superposition of Walsh functions. This function is used in signal processing, data compression and video compression applications (MPEG-4).A code example from NVIDIA is here
unsigned int fastWalshTransform(unsigned int *h_Output, unsigned int *h_Input, unsigned int log2N){
const unsigned int N = 1 = 1){
//Cycle through subvectors of (2 * stride) elements
for(unsigned int base = 0; base < N; base += 2 * stride)
//Butterfly index within subvector of (2 * stride) size
for(unsigned int j = 0; j < stride; j++){
unsigned int i0 = base + j + 0;
unsigned int i1 = base + j + stride;
unsigned int T1 = h_Output[i0];
unsigned int T2 = h_Output[i1];
h_Output[i1] = T1 - T2;
h_Output[i0] = T1 + T2;
}
}
return 0;
}
This is from ( www c-to-verilog com/howtos html)You may try freescale's code composer and application notes for DSP from them.Algorithms (www ciphersbyritter com/RES/WALHAD HTM)You may have tried that on FPGA, try it on CPLD to avoid that memory problem.Hadamard papers ( www wriley com/paper4ht htm)Try Matlab VHDL Cross compilation capability may that help you in coding.