No, I don't think it should be compulsory - but I would like the ability to "write in" a candidate's name as a form of protest vote. Abstention and spoiled ballot papers are no deterrent to the main political parties. I still remember the election where all three main parties supported the idea of joining the EEC and there was no opportunity for Eurosceptics to opt out. It was specious in the extreme for each of the parties to claim after the election that they had a "mandate" to join.
I'd be in favour of each constituency having an "ombudsman" candidate - a bit like Esther Rantzen in Luton or Martin Bell standing against Neil Hamilton. There would be a limit on their candidacy - say 4 years or one parliament whichever was longer - but in the event of real dissatisfaction with the powers that be - like now in fact - we could turf the majority of them out and bring the parties to heel in terms of what public opinion really thinks. I'd also be in favour of banning career politicians - three strikes and you're out. Don't turn up at 24 fresh from university and expect to stay there until you qualify for the Lords. Establish a minimum age (35?) which means you have to have done something useful at least for a few years, and then treat it as a form of National Service - by all means devote your time and your talents to the country for 10 or so years, but after that get back to real life. I don't hold entirely with the American system of government but the two term rule for the Presidency has (on the whole) been a good thing.
Sadly true public opinion never surfaces until the day of the election by which time it's too late - the media certainly don't represent it truthfully or fully - at best they have their own agendas - at worst, they represent one or other bloc - big business or the unions, right or left - never the ordinary voter just trying to get on with life.